2、Docker环境搭建:安装Docker Engine、配置Docker镜像加速器、验证Docker运行状态
本章是课程的基础环境准备环节。在开始后端鉴权拦截的接口开发与容器化部署之前,必须确保宿主机上已正确安装并配置Docker Engine。我们将以Ubuntu 22.04 LTS为例,覆盖从卸载旧版本、安装新引擎、配置镜像加速器到最终验证运行状态的完整流程。
2.1 安装Docker Engine
Docker Engine是运行和管理容器的核心组件。官方推荐通过apt仓库安装,以确保获得最新的稳定版本和安全补丁。
2.1.1 卸载旧版本
如果系统中存在旧版Docker(如docker.io或docker-engine),需先卸载,避免冲突。
sudo apt remove docker docker-engine docker.io containerd runc
2.1.2 设置官方仓库
依次执行以下命令,添加Docker的官方GPG密钥和APT源。
# 更新包索引并安装依赖
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置稳定版仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.1.3 安装Docker Engine
更新索引后,安装最新版本的Docker Engine、CLI和Containerd。
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo apt-mark hold docker-ce docker-ce-cli containerd.io 锁定版本。
2.2 配置Docker镜像加速器
由于网络原因,直接从Docker Hub拉取镜像可能速度较慢。配置镜像加速器(Mirror)可以显著提升拉取速度。国内常用加速器包括阿里云、腾讯云、中科大等。以下以阿里云容器镜像服务为例。
2.2.1 获取加速器地址
登录阿里云容器镜像服务控制台,在“镜像中心”->“镜像加速器”页面获取专属加速地址,格式为:https://<your-code>.mirror.aliyuncs.com。
2.2.2 配置Docker守护进程
创建或编辑 /etc/docker/daemon.json 文件,添加 registry-mirrors 配置。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<your-code>.mirror.aliyuncs.com"]
}
EOF
2.2.3 重新加载配置并重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2.3 验证Docker运行状态
安装与配置完成后,需要通过多个维度验证Docker是否正常工作。
2.3.1 检查服务状态
sudo systemctl status docker
输出应显示 active (running),表示Docker守护进程正在运行。
2.3.2 运行测试容器
执行经典的 hello-world 镜像,验证Docker能否正常拉取并运行容器。
sudo docker run hello-world
成功输出应包含以下信息:
Hello from Docker!
This message shows that your installation appears to be working correctly.
2.3.3 验证镜像加速器生效
拉取一个较大的镜像(如 nginx:latest),观察下载速度。如果速度明显提升,说明加速器配置成功。
sudo docker pull nginx:latest
2.4 安装后关键检查清单
以下表格总结了安装完成后需要确认的关键项,帮助快速定位问题。
| 检查项 | 验证命令 | 预期结果 |
|---|---|---|
| Docker服务运行 | systemctl status docker |
active (running) |
| Docker版本 | docker version |
显示Client和Server版本信息 |
| 容器运行能力 | docker run hello-world |
打印Hello from Docker! |
| 镜像加速器 | docker info |
Registry Mirrors字段显示加速器地址 |
| 非root用户权限 | docker ps (非root用户) |
正常列出容器(需将用户加入docker组) |
sudo,可将当前用户加入 docker 组:sudo usermod -aG docker $USER。退出并重新登录后生效。
2.5 Docker环境搭建流程总览
下图展示了从卸载旧版本到最终验证的完整流程,帮助理解各步骤之间的依赖关系。
2.6 常见问题与排查
- 问题:
docker: Cannot connect to the Docker daemon
原因: Docker服务未启动或当前用户不在docker组。
解决: 执行sudo systemctl start docker启动服务;或使用sudo usermod -aG docker $USER添加用户权限。 - 问题: 镜像拉取速度极慢或超时
原因: 未配置镜像加速器或加速器地址错误。
解决: 检查/etc/docker/daemon.json中的registry-mirrors配置,确保地址正确且可访问。 - 问题:
permission denied错误
原因: 当前用户未加入docker组,或SELinux/AppArmor限制。
解决: 将用户加入docker组后重新登录;或临时使用sudo执行命令。
docker info 查看系统信息,确认存储驱动(推荐 overlay2)、Cgroup驱动(推荐 systemd)等关键参数符合预期。