解决docker拉取速度慢的问题!多种姿势拉取docker镜像
前言
国内docker源镜像仓库都被上面勒令封锁了,我不清楚是出于怎样的缘故,但这无疑带来了docker拉取的不便,请容我稍稍抱怨一下
记录一下对此的解决方法
方案一
使用某国内厂商的私有源仓库,你可以在某厂商注册私有镜像源然后通过一些拉取较快的国外服务器拉取后再上传到私有国内镜像。前提是你有国外主机
命令大概是
某国外vps主机(拉取源较快)
docker pull nginx |
国内主机(拉取较慢)
docker login <私有源地址> |
这样就能速度拉满了,而且可以存一些自己构建的不可描述镜像,比如我的某魔法一键部署docker
方案二
使用代理,前提是你有国外主机
如果是systemd管理的linux服务器,则可以使用systemd设置环境变量,可以让image拉取时获得代理加速
注意,群晖6版本是synoservice管理,并不适用,群晖7据说是systemd,我并没有尝试过
在/etc/systemd/system/docker.service.d/
下添加以conf为后缀的文件,我的是/etc/systemd/system/docker.service.d/http-proxy.conf
mkdir -p /etc/systemd/system/docker.service.d |
写入以下内容
[Service] |
记得修改成你的代理端口
之后就是经典的
systemctl daemon-reload |
之后验证是否生效,可以随便拉取一个镜像看代理日志是否出现docker相关的镜像源url
方案三
serverless方案
cloudflare worker
代理镜像源
优点:不需要服务器,不需要额外花销
缺点:速度完全取决于被玩坏的cloudflare cdn,大多数情况下很慢
推荐相关项目
- CF-Workers-docker.io 这个还挺快的
- hammal 这个我实际尝试了很慢很慢,不知道是不是我的问题
render部署docker镜像的代理
render似乎最近更新了免费额度,我是用的这种,速度很快,而且在render的免费额度中,免费额度好像是100G,一般来说够用了,但需要绑卡(后面不会计费,选择免费即可),我用的虚拟卡,就不推荐哪家了
首先你需要注册官方镜像dockerhub
,然后同上面方案一的命令,拉取镜像后推送到官方镜像,最后在render里面选择私有镜像即可部署(不能直接部署,因为docker代理镜像源被拉黑了)
我用的是mirhub/mirror-hub
,你可以使用这个仓库的
不管你用的哪种方法之后在绑定域名,创建/etc/docker/daemon.json
文件,填入以下内容
{ |
然后保存后重启docker即可
systemctl daemon-reload |
重启后可以用docker info
查看是否生效
显示的是你daemon.json
中的url就是生效了,之后正常docker pull
就行
总结
至此用三种方法解决了docker
代理拉取很慢的问题,可以愉快的使用docker了