Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题

Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

假如你有一台海外的主机,你会做什么?推荐2个实用又强大的开源项目,帮你轻松玩转海外主机

3X-UI 基于xray-core构建的多协议管理面板

世界那么大,我想去外面看看

项目名称:MHSanaei3x-ui
项目地址:https://github.com/MHSanaei/3x-ui
START数:24.6K
一键安装方式:bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

3X-UI 基于xray-core构建的多协议管理面板

虽然网上有不少容器镜像加速服务,但稳定性参差不齐。如果你希望自建一个稳定的镜像代理服务,那下面这个项目一定适合你。

Docker-Proxy 是一个基于 Docker Registry 的代理缓存工具,支持 Docker Hub、K8s、Quay、GHCR、MCR、NVCR 等多个上游仓库,帮你轻松实现镜像加速。

项目名称:Docker-Proxy
项目地址:https://github.com/dqzboy/Docker-Proxy
START数:3.7K
一键安装方式:bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"

安装与配置 Docker-Proxy

1.执行安装脚本

运行以下命令启动安装向导:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"
Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

安装菜单中提供了多个选项:

  • 若你的主机尚未安装 Docker,请先选择【2】组件安装,安装 Docker 等依赖。

  • 若已安装,直接选择【1】安装服务,然后根据需要选择是否一键部署所有服务,或仅安装指定上游仓库的代理。

[INFO]======================== 安装服务 ========================
1) 一键部署所有服务
2) 安装指定容器服务
3) 返回主菜单
4) 退出脚本
---------------------------------------------------------------
[INFO] 输入对应数字并按Enter键 > 1

安装过程中,建议根据提示开启 BBR 拥塞控制算法以优化网络性能。同时,根据你的主机存储空间合理设置缓存时间,存储有限的话可适当调低或关闭缓存。

安装完成后,系统会自动在主机上部署多个 Docker Registry 容器,分别代理不同的上游仓库。

Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

如果安装的时候没有使用域名,使用非https的方式加速的话。编辑 /etc/docker/daemon.json,加入如下内容(请替换 XX.XX.XX.XX 为你的服务器 IP):

{
    "insecure-registries": ["XX.XX.XX.XX:51000"],
    "registry-mirrors": ["http://XX.XX.XX.XX:51000"]
}

配置完成后重启下服务

systemctl daemon-reload && systemctl restart docker 

3.进阶配置:使用域名+HTTPS方式部署

如果你拥有一个域名,并希望通过 HTTPS 方式使用镜像加速服务,可选Nginx或者Caddy来配置https,建议使用Caddy,Caddy可以自动申请和部署SSL证书。

在安装菜单中选【2】组件安装 → 【5】安装 Caddy。

安装完成后,选择【7】配置 Caddy,输入你的域名及需要代理的服务子域名(如 hub、gcr 等),脚本会自动生成 Caddyfile 并配置反向代理代理到对应的容器。

Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte
Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

接着,前往你的域名的 DNS 解析服务商,添加对应的 A 记录,将子域名指向你的海外主机 IP。别忘了在主机安全组中放行 80 和 443 端口。

Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

配置完成后,使用浏览器访问你的域名(如 https://hub.xxx.cn/v2 )若看到类似下面的页面,说明服务运行正常:

Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

现在,你可以将本地 Docker 客户端的配置更新为 HTTPS 方式。再次编辑 /etc/docker/daemon.json,移除 insecure-registries,并更新 registry-mirrors:

{
    "registry-mirrors": ["https://hub.xxx.cn"]
}

再次重启 Docker 服务即可。

测试拉取镜像正常

Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte

 


Docker-Proxy | 自建容器镜像加速服务,解决国内无法拉取镜像问题-一字节.OneByte