开发者社区> 花米徐> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Docker pull很慢,需要docker加速器

简介: Docker pull很慢,需要用到DOCKER加速器 首先,要"感谢"伟大的墙及其亲属。然后,我们可以使用 Docker 镜像加速器来解决这个问题,加速器就是镜像、代理的概念。
+关注继续查看

Docker pull很慢,需要用到DOCKER加速器

注意:不要使用加速器网站所给的配置脚本,容易导致错误。我们只需获取其提供的加速器地址即可。

Ubuntu 14.04 配置加速器(或其它使用 Upstart 的系统) 

Ubuntu 14.04 是使用 upstart 进行系统初始化的,对于这类系统,可以用通过编辑配置文件的方法来配置加速器。

如果是 Ubuntu 14.04,那么编辑 /etc/default/docker,在里面寻找 DOCKER_OPTS 环境变量设置的这一行,在其后添加 -–registry-mirror=<加速器地址>。如果发现该行已被注释,或者不存在该行,那么新添一行即可。

比如,在使用官方源安装了 docker-engine 后,会建立一个默认的 /etc/default/docker,其中相关 DOCKER_OPTS 的行是这样的:

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
假设我们得到的加速器地址为 http://abcd.m.daocloud.io,我们添加一行配置,将其改为:

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
DOCKER_OPTS="--registry-mirror=http://abcd.m.daocloud.io"
保存文件后,重启 Docker 引擎:

$ sudo service docker restart
docker stop/waiting
docker start/running, process 3620
重启成功后,确认一下配置是否已经生效:

$ sudo ps -ef | grep dockerd
root      3620     1  0 04:26 ?        00:00:00 /usr/bin/dockerd --registry-mirror=http://abcd.m.daocloud.io --raw-logs
如果配置成功,生效后这里就会看到自己所配置的加速器的内容。

Ubuntu 16.04 或 CentOS 7 配置加速器(或其它使用 Systemd 的系统)

Ubuntu 16.04 和 CentOS 7 这类系统都已经开始使用 systemd 进行系统初始化管理了,对于使用 systemd 的系统,应该通过编辑服务配置文件 docker.service 来进行加速器的配置。

在启用服务后

$ sudo systemctl enable docker
可以直接编辑 /etc/systemd/system/multi-user.target.wants/docker.service 文件来进行配置。

sudo vi /etc/systemd/system/multi-user.target.wants/docker.service
在文件中找到 ExecStart= 这一行,并且在其行尾添加上所需的配置。假设我们获得的加速器地址为 https://jxus37ac.mirror.aliyuncs.com,那么可以这样配置:

ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ac.mirror.aliyuncs.com

注: Docker 1.12 之前的版本,dockerd 应该换为 docker daemon,更早的版本则是 docker -d。不过还在用那些版本的童鞋,升级吧…

 

保存退出后,重新加载配置并启动服务:

sudo systemctl daemon-reload
sudo systemctl restart docker
确认一下配置是否已经生效:

sudo ps -ef | grep dockerd
如果配置成功,生效后就会在这里看到自己所配置的加速器。

在 1.13 版本以后,可以直接 docker info 查看,如果配置成功,加速器 Registry Mirror 会在最下面列出来。

如果重启后发现无法启动 docker 服务,检查一下服务日志,看看是不是之前执行过那些加速器网站的脚本,如果有做过类似的事情,检查一下是不是被建立了 /etc/docker/daemon.json 以配置加速器,如果是的话,删掉这个文件,然后在重启服务。

使用配置文件是件好事,比如修改配置不必重启服务,只需发送 SIGHUP 信号即可。但需要注意,目前在 dockerd 中使用配置文件时,无法输出当前生效配置,并且当 dockerd 的参数和 daemon.json 文件中的配置有所重复时,并不是一个优先级覆盖另一个,而是会直接导致引擎启动失败。很多人发现配了加速器后 Docker 启动不起来了就是这个原因。解决办法很简单,去掉重复项。不过因此在这些问题解决前,建议使用修改 docker.service 这类做法来实现配置,而不是使用配置文件 daemon.json。

阿里云的加速器获取方式

第1步:开通了阿里云开发者帐号

阿里云容器Hub服务提供了官方的镜像站点加速官方镜像的下载速度。

开通了阿里云开发者帐号,地址  https://dev.aliyun.com/search.html

第2步:登录阿里云,获取自己的专属加速器地址

开通账号后在个人中心中点击加速器,即访问 https://cr.console.aliyun.com/#/accelerator 获取专属Docker加速器地址,,然后就看到自己的镜像库地址啦。https://cr.console.aliyun.com/#/accelerator

https://xxxxxxxx.mirror.aliyuncs.com 为自己的专属加速器地址:

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
docker pull 报错:Get https://registry:5000/v1/_ping: http: server gave HTTP response to HTTPS client
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80415283    ...
3282 0
什么,容器太多操作不过来?我选择Docker Compose梭哈(下)
什么,容器太多操作不过来?我选择Docker Compose梭哈(下)
299 0
+关注
花米徐
前端测试相关技术专家
32
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载