一、为什么 Docker 仍然值得学¶
这些年大家常说 Docker “失宠”了,但这并不等于 Docker 没价值。相反,在很多实际场景里,Docker 依旧是最容易上手、生态最完整、资料最丰富的容器工具。
它之所以仍然重要,主要有几个原因:
- 依旧是产品交付和镜像打包的最佳实践之一
- 依旧是本地开发和测试最常见的容器工具
- 镜像和容器管理方式足够灵活
- 大量企业仍以 Docker 作为容器入门和交付工具
所以学习 Docker,不是为了停留在 Docker 本身,而是为了更顺畅地进入整个容器与云原生体系。
二、Docker 的基本概念和核心组件¶
Docker 是一个开源的容器引擎,核心目标是把应用和依赖打包进可移植的容器中,并让这些容器能够在不同 Linux 或 Windows 环境中尽可能一致地运行。
Docker 的主要组件包括:
- Docker Client:客户端,负责执行命令
- Docker Daemon:守护进程,负责真正管理镜像和容器
- Docker Image:镜像,作为模板使用
- Docker Container:容器,镜像运行后的实例
- Docker Registry:镜像仓库,负责集中存储和分发镜像
三、Docker 架构是怎么运作的¶
Docker 的典型交互链路是:
- 用户在客户端执行命令
- 命令发送给 Docker Daemon
- Daemon 根据需要与本地镜像库、容器运行时和远端 Registry 交互
- 最终完成镜像拉取、构建或容器启动
下图展示了 Docker 架构中的主要交互关系:

如果用几个最常见命令来理解:
docker pull nginx:从 Registry 拉取镜像到本地docker run nginx:根据本地镜像启动容器docker push:把本地镜像上传回仓库
四、OCI、containerd 和 runc 分别是什么¶
学习 Docker 时,很多人还会遇到 OCI、containerd 和 runc 这些术语。
4.1 OCI¶
OCI 是 Open Container Initiative 的缩写,它围绕容器格式和运行时定义开放标准。可以把它理解为容器生态中的“通用规范层”。
4.2 containerd¶
containerd 是从 Docker 中逐渐剥离出来的核心运行时管理组件,用于负责镜像拉取、容器生命周期等运行时相关工作。即使不启动 Docker,也可以直接使用 containerd 来管理容器。
4.3 runc¶
runc 是遵循开放容器格式规范的轻量运行工具,用来真正创建和运行容器。
理解这三者的关系后,你就更容易明白:Docker 并不等于底层运行时本身,它更像是一个面向开发者和运维人员的完整使用入口。
五、Rocky Linux 9.4 安装 Docker¶
5.1 替换系统源并生成缓存¶
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
dnf makecache
5.2 安装必要工具¶
yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git -y
5.3 添加 Docker 仓库并安装¶
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
5.4 启动 Docker¶
systemctl daemon-reload
systemctl enable --now docker
5.5 配置镜像加速器¶
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://y0araofw.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
5.6 启动测试容器¶
docker run -d -p 8888:80 registry.cn-beijing.aliyuncs.com/dotbalo/counter:v1
docker ps
curl 10.0.0.12:8888
六、Ubuntu 24.04 安装 Docker¶
6.1 配置 APT 镜像源¶
vim /etc/apt/sources.list
可以按原始笔记替换为阿里云镜像源,然后执行:
apt-get update
6.2 安装基础工具¶
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
6.3 添加 Docker 仓库¶
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
6.4 安装并启动 Docker¶
apt-get -y update
apt-get -y install docker-ce
6.5 配置镜像加速器并验证¶
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://y0araofw.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
docker run -d -p 8888:80 registry.cn-beijing.aliyuncs.com/dotbalo/counter:v1
docker ps
curl 10.0.0.83:8888
七、安装完成后应该重点看哪些信息¶
安装成功后,最常用的两个检查命令是:
docker version
docker info
通过它们可以快速确认:
- Client 和 Server 版本
- API 版本
- containerd 和 runc 版本
- 存储驱动是否正常
- Cgroup Driver 是否合理
- Docker 数据目录和镜像加速器是否生效
尤其在生产环境里,docker info 里的 Storage Driver、Logging Driver、Cgroup Driver、Docker Root Dir 和 Registry Mirrors 都很值得重点关注。
八、为什么这篇安装指南对后续 Kubernetes 学习仍然有价值¶
虽然 Kubernetes 现在通常直接对接 containerd,但学会 Docker 仍然有很强的现实意义:
- 你能更容易理解镜像和容器的生命周期
- 你能快速完成本地实验与服务验证
- 你能更顺畅地理解镜像构建、分发和运行逻辑
- 你在学习 Kubernetes 工作负载时会更清楚容器到底是怎么被创建出来的
所以,从 Docker 入门并不落后,反而是很多工程师进入容器世界最有效的一条路径。