无法直连 DockerHub 下载镜像的代理方案整理
status
Published
type
Post
slug
docker-hub-registry-mirror-proxy
date
Jun 7, 2024
tags
Docker
Config
Share
Cloudflare
summary
由于 Docker Hub 的镜像服务受到限制,用户可以通过配置 Docker 镜像仓库加速来解决下载问题。主要步骤包括修改
/etc/docker/daemon.json
中的registry-mirrors
地址,使用提供的多个镜像加速地址,并提供了相关的命令示例。还提到使用 Cloudflare 进行自建镜像加速的注意事项,以及一些开源项目的链接供参考。此外,文中还介绍了 Docker 镜像的离线导出与导入方法。近期 Docker Hub 的镜像服务平台均“被”关停了各自的服务,阿里云 / 华为云 等云厂商的私有镜像加速也不能被使用了。
如下为上海交大镜像站声明的存档:
作为个人使用,我们可以直接全局代理或分流处理网络流量,从而拥有真-互联网的体验。但在某些场景下,我们还是不得不使用到一些其他的加速方案,如下对其进行一个简单的整理:
我们要配置 Docker 镜像仓库加速,核心就是修改
/etc/docker/daemon.json
中 registry-mirrors
的镜像加速地址。镜像加速地址 | 镜像说明 |
https://docker.registry.cyou | |
https://docker-cf.registry.cyou | |
https://docker.1panel.live | 1panel 面板镜像服务 |
https://hub.rat.dev | 耗子面板镜像服务 |
https://dockerhub.o0o.us.kg | |
https://dockerhub.icu |
Docker daemon 配置代理
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou" ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
配置完成后使用如下:
# 拉取 library 镜像 docker pull docker.registry.cyou/library/nginx:alpine # 拉取 coredns 镜像 docker pull docker.registry.cyou/coredns/coredns:latest
镜像拉取后,可重新 tag 的来修改:
# 重新 tag docker tag docker.registry.cyou/coredns/coredns:latest coredns:latest # 移除原 tag docker rmi docker.registry.cyou/coredns/coredns:latest
上面拉取镜像时用到的library
是一个特殊的命名空间,它代表的是官方镜像。如果是某个用户的镜像就把library替换为镜像的用户名即可。
👇 如果自建镜像加速可查阅下方 v2ex 的帖子,其中 3 楼回复有针对
library
的处理,有需要可参考。Cloudflare 自建加速镜像
用 Cloudflare 来代理镜像仓库的方案请酌情谨慎使用,据不可靠消息官方已经开始对此类大量滥用行为进行账号封禁处理。
自建镜像相关开源项目
附:Docker 镜像离线导出与导入
# 在可联网主机上拉取镜像 docker pull nginx # 导出镜像为 tar 包 docker save -o nginx.tar nginx:alpine # 将上面的 tar 包传输至另外的主机,再导入镜像 docker load -i ./nginx.tar