Docker核心原理详解(图解+秒懂+全面)

Docker是云原生的核心,也是大厂必备技能,下面我就全面来详解Docker核心原理@mikechen

Docker核心原理

Docker ,是一个 开源的应用容器引擎。

让开发者可以把应用程序和依赖环境,打包在一个“容器(Container)”中,一次构建,到处运行。

Docker核心原理详解(图解+秒懂+全面)-mikechen

Docker容器核心原理,可以从「架构组成 → 核心技术 → 运行流程」三层来理解。

 

Docker架构

Docker架构,如下图所示:

Docker核心原理详解(图解+秒懂+全面)-mikechen

+-----------------------+
|     Docker Client     |
|  (CLI / REST API)     |
+----------+------------+
           |
           v
+-----------------------+
|    Docker Daemon      |
|  (dockerd 守护进程)   |
|-----------------------|
|  containerd + runc    |
|-----------------------|
|   网络 / 存储 / 构建   |
+----------+------------+
           |
           v
+-----------------------+
|   Docker Registry     |
|  (Docker Hub / 私有)   |
+-----------------------+

Docker的核心组件包括:

Docker Client:命令行工具(docker run、docker build);

Docker Daemon(dockerd):守护进程,负责容器创建、镜像管理;

Containerd / runc:真正负责容器生命周期和底层运行;

Image Registry:镜像仓库(如 Docker Hub / Harbor)。

 

Docker核心技术

Docker 能实现“秒级启动 + 高隔离 + 高复用”,依赖三大 Linux 核心特性。

Docker核心原理详解(图解+秒懂+全面)-mikechen

Linux Namespaces (命名空间)

提供进程级隔离,让每个容器像独立系统。

PID:进程隔离;

NET:独立网络栈;

MNT:文件系统隔离;

UTS:主机名隔离;

IPC:进程间通信隔离;

每个容器看到的都是自己的进程、文件、网络环境。

 

Linux Cgroups (控制组)

限制容器使用的, CPU、内存、IO 等资源,防止容器抢占宿主机资源

docker run -m 512m --cpus=1 nginx

控制容器使用的 CPU、内存、I/O、网络带宽 等资源。

防止某个容器“吃光资源、拖垮系统”。

 

UnionFS (联合文件系统)

通过“分层文件系统”,实现镜像快速构建与共享。

镜像由多层只读层组成,每一层都可被其他镜像复用,容器运行时在最上层叠加一层可写层。

FROM ubuntu:20.04      ← 基础层
RUN apt install nginx   ← 第二层
RUN echo "Hello" > /index.html  ← 第三层

 

Docker运行流程

Docker核心原理详解(图解+秒懂+全面)-mikechen

Docker运行流程,如下:

1️⃣ CLI解析命令
 Docker CLI 通过 REST API 调用本地 Docker Daemon。

2️⃣ Daemon调用Containerd
 守护进程接收到请求后,交给 containerd 创建容器。

3️⃣ Containerd 调用 runc
 containerd 使用 runc 创建容器进程,调用 Linux 内核能力(Namespaces + Cgroups)。

4️⃣ runc 创建隔离环境
 runc 基于镜像内容挂载文件系统(UnionFS),设置隔离空间(Namespace),限制资源(Cgroups)。

5️⃣ 启动容器主进程
 runc 启动用户定义的应用(如 nginx),容器正式运行。

6️⃣ Docker Daemon 持续监控容器
 容器运行时状态、资源、网络由 Docker Daemon 统一管理。

总之,Docker通过“Namespace隔离 + Cgroups限流 + UnionFS分层”,实现了轻量级的进程级虚拟化。

mikechen睿哥

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

评论交流
    说说你的看法