国内无法访问下载Docker镜像的多种解决方案

2023年5月中旬, hub.docker.com  "不知" 何种原因国内均无法正常访问了。当时只是官网不能访问,但是不影响pull镜像。

2024年6月,国内几家Docker Hub 镜像服务平台均被要求下架,停止服务。不知以后是否开放?或开启白名单模式?

这里不讨论其原因!这里分享几个方法,帮助童鞋如何正常的拉取Docker镜像!

如果童鞋你有更多方式,请留言分享给大家哈~

更多关于:Docker / Docker常用命令 / Docker Hub

方法1

有一个难兄难弟的国家:毛子哥被M制裁无法顺利访问Docker Hub。这里可以借助毛子哥国家的镜像!

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": [

"https://docker.m.daocloud.io",

"https://huecker.io",

"https://dockerhub.timeweb.cloud",

"https://noohub.ru"

]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

方法2

已经Pull过镜像的服务器,导出镜像,然后在需要pull镜像的服务器导入即可!

导出镜像到xxx.tar 

docker save -o 

例子:docker save -o nginx.tar nginx

将xxx.tar复制到其他服务器上

docker load -i

示例:docker load -i nginx.tar

方法3

优点:适合单独pull镜像使用

缺点:不支持配置到 daemon.json

官方镜像:https://mirror.yandex.ru/

使用方式:docker pull cr.yandex/mirror/nginx

方法4

Docker使用HTTP代理
优点:不修改Docker加速镜像,可从官方直接拉取

缺点:使用完毕后一定要关闭HTTP代理

首先,代理需要能访问Docker Hub!这个软件不多说了我测试使用的是 V2**N。该软件支持局域网内访问。

这里主要介绍如何让服务器的Docker能走代理!

1,新建目录

mkdir -p /etc/systemd/system/docker.service.d

2,新建文件,粘贴并内容,并保存!

vim /etc/systemd/system/docker.service.d/http-proxy.conf

以下粘贴内容,IP一定要换成你代理软件运行的电脑的内网IP,通过ipconfig可以查看

端口一定要是代理软件设置的局域网端口!

[Service]

Environment="HTTP_PROXY=http://192.168.8.125:10819"

Environment="HTTPS_PROXY=http://192.168.8.125:10819"

Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"

3,重启Docker

systemctl daemon-reload

systemctl restart docker

4,检查环境变量是否生效

systemctl show --property=Environment docker

其他开源项目

https://github.com/NoCLin/LightMirrors

https://github.com/bboysoulcn/registry-mirror

最后总结

1,如临时使用,建议参与零门槛几个方案,方便快捷

2,据说后面pip源可能也会受到影响,可用采用HTTP代理方式

3,国内阿里云,腾讯云均提供私有镜像服务,大家可用尝试看看

阅读剩余
THE END
诺言博客