Docker配置代理,以保证可以快速拉取镜像

序言

本来不想写了,然后记笔记了,但是今天遇到这个问题了再一次,还是写一写吧,加深一下印象

因为Docker被墙了,所以拉取Docker镜像的时候,需要通过代理的方式

xxxxxxxxxx,此处省略十几个字,然后,在目标主机上面配置代理,但是需要注意的是,docker并不能使用bash的代理配置,所以需要额外配置docker的代理,这里需要注意,一开始认为不需要所以一直不通。

配置

Docker 使用代理的配置需要显式设置。默认情况下,Docker 守护进程和容器都不会使用系统的代理环境变量,因此你需要在 Docker 配置中指定代理。

在执行docker pull时,是由守护进程dockerd来执行。因此,代理需要配在dockerd的环境中。而这个环境,则是受systemd所管控,因此实际是systemd的配置。也可以通过daemon.json配置代理

1.通过systemd方式

创建或编辑 Docker 配置文件

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.xx.xx:xxxx"
Environment="HTTPS_PROXY=http://192.168.xx.xx:xxxx"
Environment="NO_PROXY=localhost,127.0.0.1"

重新加载系统守护进程并重启 Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

可以通过docker info命令查看配置的代理
如果这个配置在里面,证明配置成功,如果没有,用方法二

2.通过daemon.json方式

/etc/docker/daemon.json中增加代理配置:

{
  "registry-mirrors": ["..."],
  "proxies": {
    "http-proxy": "http://:@:",
    "https-proxy": "http://:@:",
    "no-proxy": ""
  }
}

重启Docker服务:

systemctl restart docker

检查配置是否生效:

docker info| grep Proxy

通过daemon.json方式配置的优先级会高于通过systemd配置。


结尾

还有就是Docker容器内部配置代理,这个也有好几种方法,暂不赘述。

你可能感兴趣的:(docker,容器,运维)