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 驱动、以及配置国内可用的镜像加速器。

  1. 创建或编辑配置文件:

    sudo mkdir -p /etc/docker
    sudo vi /etc/docker/daemon.json
    
  2. 写入以下配置内容:

    {
      "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"
    }
    
  3. 配置项说明

    • registry-mirrors:配置多个第三方镜像加速通道,当其中某一个失效时,Docker 会自动尝试列表中其他的地址。
    • exec-opts:将 Cgroup 驱动设置为 systemd,与 CentOS 7 系统的初始化系统保持一致,避免在高负载下出现资源管理混乱。
    • log-opts:限制单个容器日志大小最大为 100M,最多保留 3 个归档文件。

五、 启动并管理 Docker 服务

  1. 启动 Docker 并设置开机自启:

    sudo systemctl daemon-reload
    sudo systemctl enable docker --now
    
  2. 检查 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 rundocker pull 执行时能正常下载镜像,即可判定该加速通道处于正常工作状态。

posted on 2026-05-25 15:11  LeeHang  阅读(22)  评论(0)    收藏  举报