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://<user>:<password>@<domain>:<port>",
    "https-proxy": "http://<user>:<password>@<domain>:<port>",
    "no-proxy": "<registry.domain>"
  }
}

重启Docker服务:

systemctl restart docker

检查配置是否生效:

docker info| grep Proxy

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


结尾

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霍志杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值