【Docker入门】容器技术

【Docker 入门系列】容器技术(Container Technology)核心原理

容器技术是 Docker 的灵魂,但 Docker 本身不是容器,而是目前最流行的容器标准化工具和生态
2026 年,容器技术已高度成熟,其本质一句话概括:

容器 = 受严格限制 + 资源可控的进程 + 独立的资源视图 + 可移植的打包格式

1. 容器 vs 传统虚拟机(VM)——最直观的对比(2026 年视角)

维度传统虚拟机 (VMware/ESXi/Hyper-V/…)Docker 容器谁更胜一筹(常见场景)
隔离级别硬件级(完整 Guest OS + Hypervisor)操作系统级(内核共享,Namespace + cgroup)VM 更强(安全性更高)
启动速度几十秒 ~ 几分钟毫秒 ~ 几秒容器碾压
资源占用每个 VM 都要完整 OS(几 GB)只打包应用 + 依赖(几十 MB ~ 几百 MB)容器轻量 10~100 倍
密度一台物理机跑 5~20 个 VM一台物理机跑 数百~数千个容器容器远胜
可移植性依赖 hypervisor 和 Guest OS 兼容只要有 Linux 内核 + Docker 就能跑容器几乎完美
镜像大小GB 级别(完整系统)MB 级别(分层 + 写时复制)容器小得多
安全性内核完全隔离,逃逸难度极高共享内核,逃逸风险更高(但 user ns 缓解)VM 更安全(金融/高安全场景)
典型使用场景运行不同 OS、强隔离需求微服务、CI/CD、云原生应用

一句话总结
虚拟机像“在公寓里租一整套房子(带厨房、卫生间)”,容器像“在公寓里租一个独立卧室(共享厨房、卫生间,但有门锁)”。

2. Docker 容器技术的四大核心支柱(2026 年仍然成立)

支柱内核机制作用容器里体现的效果相关命令 / 查看方式
Namespace6~7 种命名空间空间隔离(视图独立)独立的 hostname、进程、网卡、文件系统等/proc/<pid>/ns/ 查看
CgroupsControl Groups v1/v2资源限制与计量(CPU/内存/IO/设备等)容器超用资源会被限制/杀掉docker statssystemd-cgtop
UnionFS / OverlayFSAUFS / Overlay2 / OverlayFS镜像分层 + 写时复制(Copy-on-Write)镜像只读层 + 容器可写层,体积小、启动快docker image inspectdocker system df
Libcontainer / runcOCI 标准容器运行时实际创建/管理容器的低层执行引擎Docker → containerd → runc 的调用链runc specdocker info --format '{{.Runtime}}'

最简调用链(2026 年主流)
docker run → Docker CLI → containerd → runc → Linux 内核(Namespace + Cgroups + …)

3. 容器生命周期形象图(最容易记住)

Dockerfile  →  docker build  →  Image(只读模板)
                                       ↓
                               docker run / create
                                       ↓
                           Container(运行态实例)
                                       ↓
                             docker start / stop / restart
                                       ↓
                             docker rm(删除容器)
                                       ↓
                          docker rmi(删除镜像,可选)

4. 动手验证“容器本质是进程”——强烈推荐敲一遍

在宿主机上运行:

# 启动一个前台容器(保持运行)
docker run -d --name test-container busybox sleep 3600

# 查看容器在宿主机的真实 PID
docker inspect test-container | grep Pid
    "Pid": 12345,   ← 这就是宿主机的真实进程号

# 在宿主机上看这个进程
ps -p 12345 -o pid,ppid,cmd
top -p 12345

你会发现:容器里 PID=1 的 sleep,其实就是宿主机上的一个普通进程,只是被套上了 Namespace 和 Cgroups 的“紧箍咒”

再进容器内部看:

docker exec -it test-container sh
ps aux   # 只能看到 PID 1 的 sleep,看不到宿主机其他进程

5. 2026 年容器技术演进小结(新手知道这些就够)

  • containerd 已完全取代 dockerd 作为默认运行时(Docker 20.10+ 默认用它)
  • runc 是 OCI 标准的事实实现,几乎所有容器工具都依赖它
  • Podman / Buildah 等无守护进程工具越来越流行(rootless 更安全)
  • Docker Desktop 在企业/个人开发中仍占主导,但生产环境多用 containerd + CRI-O
  • Wasm + WASI 开始与容器共存(轻量级、无需完整 OS 的“容器”)

一句话口诀(背下来超有用)

“容器不是小虚拟机,是加了六副眼镜 + 资源镣铐的进程;镜像分层写时复制,轻快可移植;Namespace 隔离视图,Cgroups 管资源。”

下一步最该掌握的顺序(推荐路径)

  1. 容器 vs VM + 核心四大支柱(今天)
  2. Namespace 六大隔离详解 + 动手实验
  3. Cgroups 资源限制(cpu、memory、pids)
  4. 镜像分层原理 + Dockerfile 编写
  5. Docker network / storage / compose 基础

想看哪一块的更详细实验或图解?
比如:

  • 容器逃逸的真实原理与缓解措施
  • rootless 容器 vs root 容器对比
  • containerd + runc 的调用链详解

直接说,我继续给你展开~

文章已创建 4050

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部