实战学习Liunx(图文教程三十四)
本文最后更新于 2025-10-11,文章内容可能已经过时。
自行搭建 Docker 镜像加速服务器确实能有效解决拉取镜像慢或受限的问题。下面我为你梳理在 CentOS Stream 9 系统上搭建 Docker 镜像加速服务器的步骤,并提供一些注意事项。
🛠️ 基础环境准备(CentOS Stream 9)
首先,在您的服务器(例如腾讯云内网服务器或国外服务器)上安装 Docker:
-
安装必要工具:
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
-
添加 Docker 官方仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装 Docker CE:
sudo dnf install -y docker-ce docker-ce-cli containerd.io
-
启动并设置开机自启:
sudo systemctl start docker sudo systemctl enable docker
-
验证安装:
docker --version
🐳 搭建 Registry 镜像缓存代理
接下来,使用 Docker 官方 Registry 镜像搭建缓存代理服务。
-
创建数据存储目录:
sudo mkdir -p /var/lib/registry
-
运行 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 服务。
-
-
检查容器状态:
docker ps
🔧 客户端配置与测试
在需要加速拉取镜像的机器上(内网机器或其它服务器)进行如下配置:
-
修改 Docker 配置:编辑
/etc/docker/daemon.json
文件,将其registry-mirrors
指向你刚搭建的代理服务器地址。由于我们可能使用 HTTP,需要将其加入insecure-registries
。{ "registry-mirrors": ["http://你的代理服务器IP:5000"], "insecure-registries": ["你的代理服务器IP:5000"] }
-
重启 Docker 服务:
sudo systemctl restart docker
-
测试加速效果:
docker pull hello-world
-
查看代理日志:在代理服务器上查看日志,确认镜像是否通过缓存拉取。
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 镜像加速服务。如果你在具体操作中遇到问题,或者想了解特定环节的更多细节,欢迎讨论.
- 感谢你赐予我前进的力量