CentOS 7.9 部署 Docker CE 服务全流程指南
本指南详细介绍了在 CentOS 7.9 环境下部署 Docker 社区版(Docker CE)的完整步骤。由于 CentOS 7 已经停止官方维护(EOL),本教程中包含了通过 CentOS Vault 归档源解决依赖冲突的步骤,以确保安装过程顺利。
docker官方下载链接
https://download.docker.com/linux/centos/
参考官方部署手册链接
https://docs.docker.com/engine/install/centos/
一、 环境准备与依赖安装
CentOS 7 在安装较新版本的 Docker 时,常因基础 YUM 源失效或版本滞后,导致 container-selinux 等依赖包无法解析。此处采用手动引入 CentOS Vault(官方归档库)对应的 RPM 包来解决依赖问题。
1. 安装基础工具
首先安装 yum-utils(用于管理 YUM 源)及存储驱动相关的依赖包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 手动安装核心依赖包
由于部分依赖在常规源中可能缺失,直接从 CentOS Vault 归档源下载并安装指定版本的依赖包:
# 安装 container-selinux
sudo yum install -y https://vault.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
# 安装 slirp4netns(用于无根容器网络)
sudo yum install -y https://vault.centos.org/centos/7/extras/x86_64/Packages/slirp4netns-0.4.3-4.el7_8.x86_64.rpm
# 安装 fuse-overlayfs(支持 overlay2 存储驱动的联合文件系统工具)
sudo yum install -y https://vault.centos.org/centos/7/extras/x86_64/Packages/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
二、 配置 Docker CE 软件源
为了保证拉取 Docker 安装包的稳定性,推荐在国内环境使用阿里云提供的 Docker CE 源。
# 添加阿里云 Docker CE 软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# (可选)如在海外环境,可使用官方源
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
三、 安装 Docker Engine
配置好软件源后,安装 Docker Engine 核心组件、命令行客户端以及新增的插件(Buildx 和 Compose 插件):
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
四、 配置守护进程(daemon.json)
通过配置 /etc/docker/daemon.json,可以优化 Docker 的运行行为,包括设置容器日志大小上限(防止磁盘爆满)、指定 Cgroup 驱动、以及配置国内可用的镜像加速器。
-
创建或编辑配置文件:
sudo mkdir -p /etc/docker sudo vi /etc/docker/daemon.json -
写入以下配置内容:
{ "registry-mirrors": [ "https://docker.1panel.live", "https://docker.m.daocloud.io", "https://dockerpull.com", "https://docker.anyhub.us.kg", "https://dhub.kubesre.xyz" ], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "storage-driver": "overlay2" } -
配置项说明:
registry-mirrors:配置多个第三方镜像加速通道,当其中某一个失效时,Docker 会自动尝试列表中其他的地址。exec-opts:将 Cgroup 驱动设置为systemd,与 CentOS 7 系统的初始化系统保持一致,避免在高负载下出现资源管理混乱。log-opts:限制单个容器日志大小最大为 100M,最多保留 3 个归档文件。
五、 启动并管理 Docker 服务
-
启动 Docker 并设置开机自启:
sudo systemctl daemon-reload sudo systemctl enable docker --now -
检查 Docker 服务运行状态:
systemctl status docker若服务状态显示为
active (running),说明 Docker 守护进程已成功启动。
六、 验证部署结果
1. 验证镜像加速器配置
运行 docker info,查看输出中的 Registry Mirrors 部分是否已正确加载配置的加速器:
docker info | grep -A 5 "Registry Mirrors"
2. 验证容器拉取与运行
运行官方经典的测试镜像 hello-world。该命令会触发本地镜像检索,若本地不存在,则通过配置的镜像加速器从远端拉取:
docker run hello-world
预期输出:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
Digest: sha256:0e760fdfbc48ba8041e7c6db999bb40bfca508b4be580ac75d32c4e29d202ce1
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
当终端打印出 Hello from Docker! 时,表明 Docker 服务的安装、网络配置以及镜像拉取功能均已处于可用状态。
💡 运维技术备忘(关于镜像加速测试的提示)
在通过 curl 手动测试部分镜像加速地址(如 curl -v https://docker.1panel.live/v2)时,可能会遇到返回 403 Forbidden 并带有 proxy not work for this image 等提示。
原因解释:这是由于部分第三方加速器在网关处配置了安全防刷机制,限制了通过普通浏览器或 curl 直接对根路径或非镜像拉取特征的 API 进行匿名请求。只要在 docker run 或 docker pull 执行时能正常下载镜像,即可判定该加速通道处于正常工作状态。
浙公网安备 33010602011771号