🧱 理解 Docker 的第一步,是认清楚它背后的各个组成部分。
本文一站式讲透:Docker 的架构结构 + 每一部分的职责 + 容器的本质。
一、Docker 的整体架构图
二、Docker 的核心组成详解
我们逐个从架构组成角度讲清楚各部分作用、位置和术语。
1. 📦 容器(Container) —— 最终运行单元
容器是运行时的应用实例,本质上是一个在宿主机上运行的受限进程,拥有独立的文件系统、网络、用户空间。
它并不是真正虚拟出一个操作系统,而是运行在共享宿主机内核之上的“沙箱化进程”
容器是从镜像(Image)创建出来的,可启动/停止/销毁
📌 类比理解:
容器 ≈ 沙箱里的“程序副本”,看起来像一个独立系统,实际是宿主机内的一个隔离进程。
2. 🧱 镜像(Image) —— 应用的模板/快照
镜像是一个只读层叠结构,包括应用程序及其所有依赖、系统库、配置文件等内容。
类似“操作系统 + 程序”的完整快照
可在任何 Docker 主机上运行生成容器
可以版本管理(如
nginx:1.21
,python:3.10
)
📌 类比理解:
镜像 = 模板
容器 = 模板运行后的实例
3. 🐳 Docker 守护进程(dockerd) —— 主进程 / 服务端
dockerd
是 Docker 的核心进程,它是服务端组件,负责:
管理镜像、容器、网络、卷
接收客户端请求
调用底层
containerd
/runc
启动容器
📌 dockerd
是“服务的大脑”,常驻后台,是 Docker 的核心引擎。
4. 👨💻 Docker 客户端(docker CLI) —— 控制入口
客户端是我们操作 Docker 的接口,比如:
docker run nginx
docker build -t myapp .
docker ps
它会将命令通过 REST API 发送给
dockerd
可以是本地命令行,也可以是远程 API 调用(跨主机控制)
📌 类比理解:
客户端是“遥控器”,服务端是“电视机”。
5. 💽 Docker 仓库(Registry) —— 镜像存储中心
镜像统一存放的地方,分为 远程仓库 和 本地仓库
远程仓库如 Docker Hub、阿里云容器镜像服务、Harbor 私有仓库等
本地仓库即本机镜像缓存目录,避免每次都拉取远程
📌 类比理解:
仓库是“图书馆”,镜像是“书”,容器是“读书的人”。
6. 🧠 宿主机操作系统(Host OS) —— 容器运行的真实系统
宿主机是运行 Docker 引擎(dockerd)的底层机器
可以是 Linux、Windows(带 Hyper-V)等系统
所有容器运行在该主机上,并共享其 内核(Kernel)
7. 🧩 内核 Kernel(Linux 内核) —— 容器的真正基础
Docker 容器的隔离和资源限制,完全依赖于内核的两大功能:
📌 这使得容器彼此隔离、又共享底层资源,轻量高效。
三、术语对照表(常见名词解释)
四、从“开发机”到“生产系统”:Docker 各组件如何配合?
一个完整的 Docker 工作流:
你写好应用代码
↓
写 Dockerfile 构建 Image(镜像)
↓
上传到 Docker Registry(仓库)
↓
运维人员在 Docker Host 上使用 docker pull 拉取镜像
↓
使用 docker run 启动成容器
↓
内核隔离保障容器安全运行
五、结语:理解结构,才是理解 Docker 的关键
“你不需要记住所有命令,但你必须搞懂结构图。”
Docker 并非“魔法”,而是内核+引擎+仓库+隔离机制的精妙组合;
每一个组件各司其职,组合起来构成现代微服务部署的基础设施;
当你理解了
容器不是虚拟机
,镜像是只读模板
,dockerd 是主控核心
,你就真正掌握了 Docker 的架构思维。