您的位置:首页 > 运维架构 > Docker

使用DaoCloud加速docker镜像下载——修改daemon.json遇到的问题

2018-02-03 21:39 901 查看

1.docker镜像的获取

使用如下的docker pull 命令可以从官方的docker hub网站获取需要的镜像。

docker pull NAME[:TAG]


官方网站虽然资源多,但是由于是国外的网站,访问速度很不理想,获取一个镜像可能要等很久。

2.镜像获取加速的方法

2.1 非官方仓库下载

国内有很多提供这样服务的镜像源,下载的速度要好很多。

有满足需要的镜像的话,可以从对应地址下载。

在NAME 前写完整的仓库地址即可

docker pull hub.c.163.com/public/ubuntu:14.04  %从网易蜂巢的源下载ubuntu镜像


2.2 加速官方仓库的下载

国内有DaoCloud等网站提供免费的加速服务。

实际上,就是修改docker的配置文件 /etc/docker/daemon.json

在下载的时候通过网站的中转加速。这样的好处是每次直接写pull命令,不用加具体地址。

DaoCloud

注册用户,登录后,找到加速器图标,点击按照说明做一下很简单的配置就好了

具体可以参考这篇博客

3.出现的问题

DaoCloud提供了这样一条命令(其实直接运行这个,不注册网站也可以)

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://d552c9b5.m.daocloud.io[/code] 
命令通过脚本修改了 /etc/docker/daemon.json 文件

可是不知道为什么,这样自动修改后,重启docker服务会报错

Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.

根据提示,查看日志会看到类似这样的内容

2月 03 17:06:01 xz-Sys systemd[1]: Failed to start Docker Application Container Engine.

2月 03 17:06:01 xz-Sys systemd[1]: docker.service: Unit entered failed state.

2月 03 17:06:01 xz-Sys systemd[1]: docker.service: Failed with result ‘exit-code’.

2月 03 17:06:01 xz-Sys systemd[1]: docker.service: Service hold-off time over, scheduling restart.

2月 03 17:06:01 xz-Sys systemd[1]: Stopped Docker Application Container Engine.

2月 03 17:06:01 xz-Sys systemd[1]: docker.service: Start request repeated too quickly.

2月 03 17:06:01 xz-Sys systemd[1]: Failed to start Docker Application Container Engine.

这种问题出现是因为之前那条命令自动修改的json文件格式有问题

命令运行后查看文件可以看到内容变成

{“registry-mirrors”: [“http://d552c9b5.m.daocloud.io“],

“runtimes”: {“registry-mirrors”: [“http://d552c9b5.m.daocloud.io“],

“nvidia”: {“registry-mirrors”: [“http://d552c9b5.m.daocloud.io“],

“path”: “/usr/bin/nvidia-container-runtime”,

“runtimeArgs”: [],

“storage-driver”: “devicemapper”

}

}

}

可能不完全一样,但格式是混乱的,可能和命令试了不只一次也有关系。

整理一下格式,变成

{“registry-mirrors”: [“http://d552c9b5.m.daocloud.io“],

“runtimes”: {

“nvidia”: {

“path”: “/usr/bin/nvidia-container-runtime”,

“runtimeArgs”: [],

“storage-driver”: “devicemapper”

}

}

}

现在再使用 sudo service docker restart 就没问题了

下载镜像的速度也会得到提升。

4.总结

小问题,但在网上看到确实有不少人遇到同样状况,因为大家用DaoCloud官方的命令可能不会怀疑其正确性,出现错误可能会浪费很多时间,想不到脚本修改的json会有问题。

总结到这里,hope it helps.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息