背景
Docker 好用之处已经不用赘述,但作为一款美国公司开发的产品,Docker 官方镜像仓库理所当然地位于美国。而中国由于与美国远隔重洋且有特殊的网络方面的限制,导致直接使用 Docker 官方镜像仓库非常地缓慢。而这个问题可以通过配置国内某些 docker registry-mirrors 来配置实现 Docker 的使用提速。
环境信息
MacOS 10.15.3 Catalina
Docker Engine 19.03.8
Docker Engine 默认配置
在这个窗口我们看不见默认的 Registry 配置,但我们可以通过命令来查看 Docker 的 Registry。
查看当前 Docker 的 Registry 和 Registry Mirrors
jiangzhuolin@192 ~ % sudo docker info | grep Registry
Registry: https://index.docker.io/v1/
从上面的信息来看基本上就是 docker 的官方默认配置,美国 docker 地址,使用 nslookup 查询
jiangzhuolin@192 ~ % nslookup index.docker.io
Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
index.docker.io canonical name = elb-io.us-east-1.aws.dckr.io.
elb-io.us-east-1.aws.dckr.io canonical name = us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com.
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.237.62.81
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 52.3.104.67
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.193.164.221
从 nslookup 返回可以看到 docker 使用的是 aws 的服务,而从域名上也能看出来服务器则位于美国东部。
配置 Registry Mirrors
配置路径:Preferences -> Docker Engine。添加如下配置,上面是 docker 官方国内源,下方为中科大国内 docker 镜像源
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
点击 “Apply & Restart” 并等待重启完成
注:这里的 registry-mirrors 是一个集合,也就是一个数组,所以我们可以设置多个 registry-mirrors,Docker 会轮询并使用列表中的 registry-mirrors。
验证配置
在终端执行如下命令,可以看到 Registry Mirrors 已经生效
jiangzhuolin@192 ~ % sudo docker info | grep -C 5 "Registry"
Password:
Goroutines: 51
System Time: 2020-03-15T18:49:09.884092564Z
EventsListeners: 3
HTTP Proxy: gateway.docker.internal:3128
HTTPS Proxy: gateway.docker.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
--
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://registry.docker-cn.com/
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
Product License: Community Engine
附录
Docker Daemon 配置的官方文档如下,可参考:
https://docs.docker.com/engine/reference/commandline/dockerd/
常用的几个国内源
Docker 官方中国仓库:https://registry.docker-cn.com
中科大 USTC: https://docker.mirrors.ustc.edu.cn
网易 163 镜像:http://hub-mirror.c.163.com