由于docker hub服务器部署在国外,通过国内直接访问可能会出现无法访问或者访问过慢的问题,我们可以通过以下两种方式加速下载。
我们可以通过使用阿里云镜像加速服务器来加快我们的下载速度
一、首先,访问阿里镜像加速服务器,使用账户密码登陆后会获取到加速地址,如:https://3cassqq.mirror.aliyuncs.com
二、在docker的宿主机上修改/etc/docker/daemin.json
文件
{
"registry-mirrors": ["https://3cassqq.mirror.aliyuncs.com"]
}
三、重启docker
systemctl daemon-reload
systemctl restart docker
docker守护进程在启动的使用使用HTTP_PROXY
,HTTPS_PROXY
和NO_PROXY
变量来配置http或https的代理行为。我们不能在daemon.json
文件中配置这些变量。取而代之的是,我们可以配置docker systemd服务文件。
1.为docker服务创建一个目录
$ mkdir -p /etc/systemd/system/docker.service.d
2.创建一个/etc/systemd/system/docker.service.d/http-proxy.conf
文件,并在该文件中添加以下内容
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
同样的如果你需要https的代理,那么需要创建/etc/systemd/system/docker.service.d/https-proxy.conf
,并在该文件中添加以下内容
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"
3.如果有些内容不需要通过连接,那么我们需要添加NO_PROXY
变量来使这些请求不经过代理
NO_PROXY
变量使用一个包含了 , (逗号)分割的特殊字符串来从代理中排除指定的请求,可用于排除的规则如下:
- ip地址前缀 (1.2.3.4)
- 域名或特殊的DNS标签(*)
- 根据域名或所有的子域名进行匹配。一个以 . 开头匹配模式可用于匹配所有的子域名。例如,给定了
foo.example.com
和example.com
这两个域名:example.com
匹配example.com
和foo.example.com
- 而
.example.com
仅能匹配foo.example.com
- 单个 * 可用于所有的代理都不会生效
- 根据特殊的端口数字进行排除,如ip地址前缀(1.2.3.4:80)和域名(foo.example.com:80)
配置的例子:
HTTP
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registory.example.com,.corp"
HTTPS
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/" "NO_PROXY=localhost,127.0.0.1,docker-registory.example.com,.corp"
4.刷新配置
$ systemctl daemon-reload
5.重启docker
$ systemctl restart docker
6.验证修改是否生效
$ systemctl show --property=Environment docker
出现上面配置的信息,说明配置成功。