美文网首页
Docker pull卡住,解决方案

Docker pull卡住,解决方案

作者: fatshi | 来源:发表于2019-03-26 09:46 被阅读0次

    【转】https://yq.aliyun.com/articles/233839?spm=5176.10695662.1996646101.searchclickresult.5e6cd229Aatjtm

    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

    [图片上传失败...(image-cad365-1553564752807)]

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

    相关文章

      网友评论

          本文标题:Docker pull卡住,解决方案

          本文链接:https://www.haomeiwen.com/subject/skbwvqtx.html