全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-21 6 分钟 ✍️ juanwangdev

Docker 架构组件

Docker 采用 C/S 架构,下面梳理其核心组件与交互流程。

核心组件

Docker Client (客户端)

Docker CLI 是用户与 Docker 交互的主要方式:

Bash
# 客户端发送命令
docker run -d -p 80:80 nginx
  • 解析用户命令
  • 通过 REST API 发送请求给 Docker Daemon
  • 可配置连接远程 Daemon(DOCKER_HOST

Docker Daemon (服务端)

dockerd 是后台运行的守护进程:

Bash
# 查看 Daemon 状态
systemctl status docker

# 查看 Daemon 日志
journalctl -u docker

核心职责:

  • 接收并处理客户端请求
  • 管理镜像、容器、网络、存储卷
  • 与 Containerd 交互创建/管理容器

Containerd

容器运行时管理组件:

Bash
Docker Daemon → Containerd → containerd-shim → runc → 容器
  • 管理容器生命周期(创建、启动、停止、删除)
  • 镜像存储与分发
  • 网络与存储管理
  • 独立项目,可脱离 Docker 使用(如 Kubernetes)

runc

底层容器创建工具,遵循 OCI(Open Container Initiative)规范:

  • 调用 Linux Namespace 实现隔离
  • 调用 Cgroups 实现资源限制
  • 轻量级,仅负责单个容器的创建

组件交互流程

运行容器流程

Bash
用户执行: docker run nginx
    ↓
Docker CLI 发送 REST API 请求
    ↓
Docker Daemon 接收请求
    ↓
检查本地是否有 nginx 镜像
    ↓ (无镜像)
从 Registry 拉取镜像
    ↓
调用 Containerd 创建容器
    ↓
Containerd 调用 containerd-shim
    ↓
containerd-shim 调用 runc
    ↓
runc 创建 Namespace + Cgroups,启动容器进程

查看组件版本

JSON
# Docker 版本
docker version

# Containerd 版本
containerd --version

# runc 版本
runc --version

Docker Registry

镜像仓库,存储和分发镜像:

Bash
Docker Hub (公共)
    ↓
私有 Registry (Harbor、AWS ECR 等)
    ↓
docker pull/push 交互
text
# 从 Registry 拉取
docker pull nginx:latest

# 推送到 Registry
docker push myregistry.com/myapp:v1

# 登录认证
docker login myregistry.com

配置文件

Docker Daemon 配置

/etc/docker/daemon.json

text
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
  "insecure-registries": ["192.168.1.100:5000"],
  "data-root": "/var/lib/docker",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

修改后重启:

text
sudo systemctl daemon-reload
sudo systemctl restart docker

要点总结

  • Docker 采用 C/S 架构:CLI → Daemon → Containerd → runc → 容器
  • Docker CLI 通过 REST API 与 Daemon 通信
  • Daemon 管理所有 Docker 资源(镜像、容器、网络、卷)
  • Containerd 负责容器生命周期,runc 负责底层隔离
  • Registry 存储和分发镜像,Docker Hub 是默认公共仓库

📝 发现内容有误?点击此处直接编辑

← 上一篇 Docker 与虚拟机对比
下一篇 → Docker 简介与安装
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库