TANKENQI.cn

May 27, 2024

CentOS中为Docker配置代理

DockerLinux0.9 min to read

背景

因为一些安全原因,公司的机器网络环境不能直接访问外网,需要配置代理才能够访问,导致我使用拉取镜像的时候连接不到,报了如下的错误

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while......

一般来说主机通过代理访问外网方式就是通过在命令行设置 export 来设置代理,如下所示:

export http_proxy=http://proxy_server:7890 export https_proxy=https://proxy_server:7890

但是docker拉取镜像是通过 docker daemon 服务完成,docker daemon 服务是在另一个进程中,不会读取当前shell 命令行的代理,所以 docker pull 会失败,官网的说明如下:

代理配置

mkdir /etc/systemd/system/docker.service.dcd /etc/systemd/system/docker.service.d
[Service]Environment="HTTP_PROXY=http://your.proxy.server:port/"Environment="HTTPS_PROXY=http://your.proxy.server:port/"Environment="NO_PROXY=localhost,127.0.0.1"
systemctl daemon-reload
systemctl restart docker
systemctl show docker --property Environment

Environment= .....