国内无法访问下载Docker镜像的两种解决方案
零门槛
境外镜像
优点:不需大量修改,只需几个命令
缺点:网络可能慢或者不稳定
有一个难兄难弟的国家:俄罗斯,被美国制裁无法顺利访问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
镜像导入导出
优点:项目部署中可方便使用
缺点:镜像文件有时候比较大,复制迁移略麻烦
仅需在已经Pull过镜像的服务器,导出镜像,然后在需要pull镜像的服务器导入即可!
导出镜像到xxx.tar
docker save -o <path for generated tar file> <image name>
示例:docker save -o nginx.tar nginx
将xxx.tar复制到其他服务器上
docker load -i <path to image tar file>
示例:docker load -i nginx.tar
Yandex容器加速
优点:适合单独pull镜像使用,俄罗斯大厂提供服务
缺点:不支持配置到 daemon.json
官方镜像:https://mirror.yandex.ru/
使用方式:docker pull cr.yandex/mirror/nginx
低门槛
Docker使用HTTP代理
优点:可从Docker官方直接拉取
缺点:使用完毕后一定要关闭HTTP代理
首先,代理软件能访问Docker Hub官网!这个软件不多说了我测试使用的是 cl**h。设置软件支持局域网内访问。
这里主要介绍如何让服务器的Docker Pull的时候能走代理!
1,新建目录
mkdir -p /etc/systemd/system/docker.service.d
2,新建文件,粘贴并内容,并保存!
vim /etc/systemd/system/docker.service.d/http-proxy.conf
以下粘贴内容,IP一定要换成你代理软件运行的电脑的内网IP,通过source /etc/profile.d/clash.sh可以查看
端口一定要是代理软件设置的局域网端口!
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=127.0.0.1,localhost"
3,重启Docker
systemctl daemon-reload
systemctl restart docker
4,检查环境变量是否生效
systemctl show --property=Environment docker
阅读剩余
版权声明:
作者:adtest
链接:https://fish-soft.cn/?p=191
文章版权归作者所有,未经允许请勿转载。
THE END