当前位置: 首页 > news >正文

Docker引擎、Docker守护进程和Docker客户端

在上一篇中我们提到了广义docker的概念,Docker是什么?狭义和广义上的区别,该说清的就说清-CSDN博客

  • 广义的 "Docker" 可能包括:

    • Docker Engine(引擎)

    • Docker Compose(多容器编排)

    • Docker Hub(镜像仓库)

    • Docker Desktop(桌面端工具)

    • Kubernetes 集成等。

这里面有关docker引擎和docker desktop说一下。

Docker 引擎主要由以下两部分组成:

  • Docker 守护进程(dockerd

    • 常驻后台的核心服务,负责管理容器生命周期、镜像、网络、存储等。

    • 监听 Docker API 请求(默认通过 /var/run/docker.sock 或 TCP 端口)。

  • Docker 客户端(docker CLI)

    • 用户通过命令行工具与守护进程交互(如 docker rundocker build)。

也就是Docker 引擎(Docker Engine)不仅仅是守护进程(dockerd),而是一个完整的容器运行时系统,它为容器提供了一系列核心功能和支持。docker引擎是包括守护进程和客户端(cli)的。

这里既然说了Docker 引擎是包含了客户端(cli)的,前面又说了广义的docker是包含Docker Desktop的,从字面意思上看Docker Desktop是不是也是一个客户端呢?

Docker Desktop 和 Docker Engine 中的 docker CLI 客户端(Client)本质上是同一个工具,但它们的安装方式、运行环境以及部分功能存在差异。

特性Docker Desktop 中的 ClientDocker Engine 中的 Client
安装方式作为 Docker Desktop 的一部分自动安装(捆绑包)单独安装(如 apt-get install docker-ce-cli
运行环境主要在 macOS/Windows 上运行主要在 Linux 服务器或虚拟机中运行
守护进程位置通过虚拟机(Linux VM)或 WSL2 运行 dockerd直接运行在宿主机的 Linux 内核上
默认通信方式通过 unix:///var/run/docker.sock 转发到 Linux VM直接连接本地或远程 dockerd
多平台支持自动处理 macOS/Windows 与 Linux 的架构转换需手动处理跨平台镜像(如 --platform linux/amd64
图形界面包含 GUI(管理容器、镜像、设置等)仅 CLI,无图形界面
集成工具内置 Kubernetes、Volume 管理、Dev Environments 等需手动配置额外工具(如 kubectldocker-compose

Docker Desktop 和 Docker Engine 中的 docker CLI 客户端是同一个工具的不同分发形式,核心功能一致,但 Docker Desktop 对其进行了封装和扩展,更适合桌面用户。Engine 的客户端则更轻量,适合服务器环境。根据需求选择即可,两者命令完全兼容。

  • Docker 客户端可以安装在 任何能访问 Docker 守护进程的机器(包括 Docker Host 或网络内其他主机)。

针对文中列表红色字体提到的远程 dockerd再即兴说一下docker cli是安装在哪里呢?其实:Docker 客户端(docker CLI)可以安装在 Docker 主机(Host) 上,也可以安装在 网络内的其他机器 上,具体取决于如何配置客户端与 Docker 守护进程(dockerd)的通信方式。以下是详细说明:

默认情况:客户端与守护进程在同一台机器(Docker Host)

  • 典型安装方式
    当在 Linux 系统上安装 Docker(如通过 apt-get install docker-ce),会同时安装:

    • Docker 守护进程(dockerd:运行在后台,管理容器。

    • Docker 客户端(docker CLI):通过本地 Unix 套接字(/var/run/docker.sock)与守护进程通信。

  • 使用示例
    直接在 Docker Host 上执行命令(如 docker psdocker run)。

客户端与守护进程分离(远程访问)

Docker 客户端可以安装在网络内的其他机器,通过配置连接到远程 Docker 守护进程。常见场景:

(1)通过 TCP 暴露 Docker 守护进程
(2)通过 SSH 安全连接
(3)使用 TLS 加密通信(生产环境推荐)

对于上述三种情况的典型应用场景列表:

场景客户端位置通信方式适用环境
本地开发Docker Host 本地Unix 套接字个人电脑、开发机
远程管理内网其他机器TCP/SSH/TLS团队协作、测试环境
CI/CD 流水线CI 服务器(如 Jenkins)TLS 加密生产环境

对于docker cli和docker 守护进程(完全可以在一台机器上安装),基本使用方法如下所示,这部分在docker的应用时再说。

相关文章:

  • RocketMQ 中的 MessageStore 组件:消息存储的核心枢纽
  • 不同数据库的注入报错信息
  • ubuntu 2204 安装 vcs 2018
  • L1-5 吉老师的回归
  • Python赋能量子计算:算法创新与应用拓展
  • 浏览器发起调用到服务器的全过程解析
  • Mybatis的简单介绍
  • 记一次Agora-RTSALite编译遇到的问题
  • SuperPoint论文及源码解读
  • 使用Lombok无法生成Getter()与Setter()和toString()方法的解决方案
  • RocketMQ 中 DefaultMessageStore 的 AllocateMappedFileService 属性详解
  • 【Linux】Linux 权限:数字背后的神秘 “门禁卡” 系统
  • 剖析Spring中的设计模式(一) | 工厂观察者
  • 【零基础玩转多模态AI:Gemma3 27B开源视觉模型本地部署与远程访问】
  • 全星APQP软件:为用户提供高效、合规、便捷的研发管理体验
  • HDLBIT知识点
  • 探索 Vue 3 响应式系统:原理与实践
  • 蓝桥杯电子赛_E2PROM(AT24C02)
  • Agent 2 Agent VS MCP
  • 【C++】深拷贝与浅拷贝
  • 赵作海因病离世,妻子李素兰希望过平静生活
  • 【社论】以法治力量促进民企长远健康发展
  • 铁路五一假期运输旅客发送量累计超1亿人次,今日预计发送2110万人次
  • 经济日报头版评论:矢志奋斗筑梦青春中国
  • 青海大学常务副校长(正厅级)任延明已任省卫健委党组书记
  • 胖东来回应“浙江‘胖都来’卖场开业”:已取证并邮寄律师函