1. docker-ce:Docker引擎核心
  • 核心作用:Docker的守护进程和核心功能,是运行容器的“发动机”。

  • 包含内容

    • dockerd:长期运行的后台服务,负责管理镜像、容器、网络、数据卷。

    • docker 客户端(作为软链接指向 docker-ce-cli 的产物)。

    • 容器运行时接口实现。

  • 工作原理:你发出的 docker run 命令实际上发送给 dockerd,它再去拉取镜像、创建并运行容器。

2. docker-ce-cli:Docker命令行工具

  • 核心作用:与Docker引擎交互的客户端命令行工具

  • 包含内容/usr/bin/docker 这个可执行文件。

  • 工作原理:你输入 docker psdocker build 等命令,它将这些请求通过API发送给 dockerd(可以连接本机或远程主机的守护进程)。

  • 注意:即使没有本地引擎,你也可以仅安装此包来连接远程Docker主机。

3. containerd.io:容器运行时

  • 核心作用:负责实际运行容器的底层核心组件。

  • 包含内容containerd 守护进程及其配套工具(ctrcontainerd-shim)。

  • 职责链dockerd 并不直接运行容器,而是调用 containerd,由它来:

    • 管理容器的生命周期(启动、停止、暂停)

    • 管理镜像的拉取、存储、解压(docker pull 实际是它做)

    • 管理底层存储(overlay2等文件系统)

    • 通过 runc 最终启动容器进程

  • 为什么分开containerd 是CNCF毕业项目,被Docker、Kubernetes(通过CRI)等系统共同使用,便于标准化。

4. docker-compose-plugin:多容器编排插件

  • 核心作用:在Docker CLI内部原生支持 docker compose 命令(注意没有横杠)。

  • 与传统区别

    • 旧方式:独立安装 docker-compose(Python编写,独立二进制文件,命令是 docker-compose

    • 新方式:此插件提供 docker compose(是Docker CLI的子命令,Go语言编写,性能更好,集成更紧密)

  • 功能:通过一个YAML文件定义多个容器(如Web应用 + Redis + MySQL),用一条命令 docker compose up -d 一键启动所有关联服务。

  • 注意:如果你习惯旧命令 docker-compose,安装此插件后不会自动创建别名,但可以用 docker compose 完全替代。

总结:docker:是一个用于开发、分布和运行应用程序的开放平台。它可将应用程序与基础架构分离,以便快速交付软件。

docker-ce 是 Docker 的社区版本,提供了构建、发布和运行容器的工具和服务。

docker-ce-cli 是 Docker 社区版的命令行工具,用来和 Docker 守护进程进行交互。

containerd.io Docker 运行时的核心组件,提供容器的生命周期、镜像、网络管理等功能。
docker-compose-plugin 用于在单台主机上管理和编排多个容器的运行。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐