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
版本锁定提示: 生产环境建议锁定Docker版本,避免意外升级导致兼容性问题。使用 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
注意: 如果使用多个加速器,请以逗号分隔写入数组。配置完成后,务必重启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组)
非root用户权限配置: 为避免每次使用 sudo,可将当前用户加入 docker 组:sudo usermod -aG docker $USER。退出并重新登录后生效。

2.5 Docker环境搭建流程总览

下图展示了从卸载旧版本到最终验证的完整流程,帮助理解各步骤之间的依赖关系。

Docker环境搭建流程总览 卸载旧版本 添加官方APT仓库 安装Docker Engine 配置镜像加速器 重启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)等关键参数符合预期。