需求
由于国内访问直接访问docker hub网速比较慢,拉取镜像的时间就会比较长,例如下面这样:
image-20200413172605899
一直处于一个无情等待的状态。
那么如何解决这个问题呢?此时可以使用国内的镜像仓库平台进行加速拉取下载,其实就是起了一个中转站的效果。首先国内的镜像平台帮我们将国外的docker hub上镜像都下载到国内,然后再提供我们国内的下载地址即可。
而我们要做的,就是将默认的下载镜像仓库,改为国内的镜像仓库即可。
上面这些步骤说的就是使用 daocloud镜像市场:https://hub.daocloud.io/
使用DaoCloud的国内镜像加速器
登陆注册DaoCloud
访问 https://account.daocloud.io/signin
其实注册不注册都没关系,如果不想注册的,可以直接跳到下面的 访问加速器
登陆之后,选择加速器
image-20200413173821613
访问加速器
https://www.daocloud.io/mirror
image-20200413174156160
image-20200413175102958
配置 Docker 镜像站
Linux
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。
macOS
Docker For Mac
右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中加入下面的镜像地址:
http://f1361db2.m.daocloud.io
点击 Apply & Restart 按钮使设置生效。
Docker Toolbox 等配置方法请参考帮助文档。
Windows
Docker For Windows
在桌面右下角状态栏中右键 docker 图标,修改在 Docker Daemon 标签页中的 json ,把下面的地址:
http://f1361db2.m.daocloud.io
加到" registry-mirrors
"的数组里。点击 Apply 。
Docker Toolbox 等配置方法请参考帮助文档。
在Liunx下配置演练
因为我使用的是Centos7,配置演练如下。
执行配置Docker镜像站命令
[root@server01 ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
docker version >= 1.12
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],}
Success.
You need to restart docker to take effect: sudo systemctl restart docker
[root@server01 ~]#
注意:如果你没有没有配置过docker的daemon.json文件,就会出现上面这样的提示。执行过后,看看daemon文件,如下:
[root@server01 ~]# cd /etc/docker/
[root@server01 docker]# ls
certs.d daemon.json daemon.json.bak key.json seccomp.json
[root@server01 docker]#
# 可以看到原来的 daemon.json 被改为 daemon.json.bak,下面则是配置好的daocloud仓库地址。
[root@server01 docker]# cat daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],}
[root@server01 docker]#
不过可以发现这里有一个逗号,
,此时如果直接重启docker服务,则会报错如下:
[root@server01 docker]# sudo systemctl restart docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
[root@server01 docker]#
其实这个错误的原因就是因为json格式不对导致。
修改一下daemon.json
如下:
[root@server01 docker]# vim daemon.json
[root@server01 docker]#
# 去除最后的逗号
[root@server01 docker]# cat daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
[root@server01 docker]#
# 成功重启docker服务
[root@server01 docker]# sudo systemctl restart docker
好啦,此时就可以体验一波下载的速度了。
image-20200413180652976