国内无法访问下载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,国内阿里云,腾讯云均提供私有镜像服务,大家可用尝试看看