Linux · 3 分钟阅读
01. 什么是 Docker
2026 年视角:Docker 不再是新生事物,而是云原生时代的"水电气"。新项目几乎默认容器化,但运行时选型已经多元化——Docker、Podman、containerd、Kubernetes 都在场景里。
Docker 基于 Linux 内核的 namespace、cgroup、UnionFS,把进程隔离在"容器"里。容器比虚拟机轻,比裸进程隔离强,正好填补"我想在干净环境跑应用"这个空缺。
容器 vs 虚拟机
| 维度 | 容器 | 虚拟机 |
|---|---|---|
| 启动 | 秒级 | 分钟级 |
| 镜像体积 | MB 级 | GB 级 |
| 性能 | 接近原生 | 受虚拟化开销影响 |
| 单机密度 | 数百 ~ 数千 | 数十个 |
| 内核 | 共享宿主机 | 独立 |
三个核心概念
- 镜像(Image):只读的文件系统模板,分层存储。
- 容器(Container):镜像的运行实例,叠加可写层。
- 仓库(Repository):存放镜像的服务,Docker Hub 是默认公共仓库。
镜像与容器的关系类似"类与实例"。镜像只读,容器在它上面多挂一层可写层,容器删了可写层就没了。
数据要持久化请挂卷(
volume或 bind mount),别写进容器可写层。
镜像分层
- 镜像由多层只读文件叠加而成
- 相同层只存一份,节省空间
docker pull命中本地缓存不会重新下载
仓库
- 官方仓库:Docker Hub(hub.docker.com)
- 国内镜像:阿里云、腾讯云、网易等
- 私有仓库:自建 Registry、Harbor、Quay
- 自动构建:GitHub 关联后 commit 即构建
国内直接拉 Docker Hub 慢是常态,给 daemon 配镜像加速器最直接。
走向 2026
- 新系统基本预装 containerd;CRI-O 在 OpenShift 等场景常见
- Podman 已成为 RHEL 系的默认 rootless 方案
- Docker Desktop 在 macOS/Windows 仍是开发首选(用虚拟机背着的 Linux)
- Kubernetes 不直接用 docker 命令了,但仍依赖 containerd / CRI 兼容的运行时