CentOS中为Docker配置代理
背景
因为一些安全原因,公司的机器网络环境不能直接访问外网,需要配置代理才能够访问,导致我使用拉取镜像的时候连接不到,报了如下的错误
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
会失败,官网的说明如下:
代理配置
- 创建目录
1 | mkdir /etc/systemd/system/docker.service.d |
- 创建配置文件
http-proxy.conf
,内容如下:- 我这里的代理没有对外提供
https
,因此所以我在https_proxy
协议还是写了http
的
- 我这里的代理没有对外提供
1 | [Service] |
- 重新加载
systemd
守护程序
1 | systemctl daemon-reload |
- 重启
Docker
1 | systemctl restart docker |
- 验证是否已经加载
1 | systemctl show docker --property Environment |
Environment= …
- 配置完后使用
docker pull
,发现有反应了
评论