本文最后更新于 2025-10-11,文章内容可能已经过时。

自行搭建 Docker 镜像加速服务器确实能有效解决拉取镜像慢或受限的问题。下面我为你梳理在 CentOS Stream 9 系统上搭建 Docker 镜像加速服务器的步骤,并提供一些注意事项。

🛠️ 基础环境准备(CentOS Stream 9)

首先,在您的服务器(例如腾讯云内网服务器或国外服务器)上安装 Docker:

  1. 安装必要工具​:

    sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
  2. 添加 Docker 官方仓库​:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. 安装 Docker CE​:

    sudo dnf install -y docker-ce docker-ce-cli containerd.io
  4. 启动并设置开机自启​:

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 验证安装​:

    docker --version

🐳 搭建 Registry 镜像缓存代理

接下来,使用 Docker 官方 Registry 镜像搭建缓存代理服务。

  1. 创建数据存储目录​:

    sudo mkdir -p /var/lib/registry
  2. 运行 Registry 容器​:此容器将作为 Docker Hub 的缓存代理。

    sudo docker run -d \
      --name docker-mirror \
      --restart always \
      -p 5000:5000 \
      -v /var/lib/registry:/var/lib/registry \
      -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
      registry:2
    • REGISTRY_PROXY_REMOTEURL指定上游仓库(例如 Docker Hub)。

    • 如果是在腾讯云内网环境,可能需要先配置并使用腾讯云的内网镜像加速地址(如 https://mirror.ccs.tencentyun.com),编辑 /etc/docker/daemon.json并重启 Docker 服务。

  3. 检查容器状态​:

    docker ps

🔧 客户端配置与测试

在需要加速拉取镜像的机器上(内网机器或其它服务器)进行如下配置:

  1. 修改 Docker 配置​:编辑 /etc/docker/daemon.json文件,将其 registry-mirrors指向你刚搭建的代理服务器地址。由于我们可能使用 HTTP,需要将其加入 insecure-registries

    {
      "registry-mirrors": ["http://你的代理服务器IP:5000"],
      "insecure-registries": ["你的代理服务器IP:5000"]
    }
  2. 重启 Docker 服务​:

    sudo systemctl restart docker
  3. 测试加速效果​:

    docker pull hello-world
  4. 查看代理日志​:在代理服务器上查看日志,确认镜像是否通过缓存拉取。

    docker logs -f docker-mirror

💡 进阶配置与考虑

  • 使用 Nginx 反向代理​:若需代理多个上游仓库(如 Docker Hub、GHCR.io、Quay.io),可为每个上游启动独立 Registry 实例,再用 Nginx 根据路径转发,实现统一入口。

  • 考虑 Nexus Repository​:对于需要更全面仓库管理(如多协议支持、UI 界面、权限控制)的场景,可选用 Nexus Repository 来搭建功能更强的镜像加速服务。

  • HTTPS 与域名​:生产环境建议为 Registry 配置域名和 HTTPS 证书以提升安全性。

⚠️ 重要注意事项

  • 网络与性能​:代理服务器的网络质量直接影响拉取速度。缓存代理首次拉取某镜像时仍需从上游仓库下载,后续拉取才会加速。

  • 存储空间​:定期清理缓存镜像,避免 /var/lib/registry目录占用过多磁盘空间。

  • 安全风险​:自签证书或使用 insecure-registries配置 HTTP 访问存在安全风险,公网或生产环境务必配置有效的 TLS 证书。

希望这份指南能帮助你顺利搭建自己的 Docker 镜像加速服务。如果你在具体操作中遇到问题,或者想了解特定环节的更多细节,欢迎讨论.