前言

在无法直接访问外网的情况下,需要通过配置代理proxy才可以进行访问
Linux的配置如下:
1.修改/etc/profile文件

leafpad /etc/profile

添加:

http_proxy=http://代理IP/域名:端口
https_proxy=http://代理IP/域名:端口
ftp_proxy=http://代理IP/域名:端口
export http_proxy https_proxy ftp_proxy

2.使配置生效

source /etc/profile

这对于大部分操作都是可行的,然而docker命令却使用不了这些代理。比如docker需要从外网下载镜像时,就会出现如下错误:

docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/ http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See ‘docker run --help’.

解决方法

1 为docker服务创建一个内嵌的systemd目录和conf文件

mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf

2 添加环境变量

[Service]
Environment=“HTTP_PROXY=http://proxy-addr:port/”
Environment=“HTTPS_PROXY=http://proxy-addr:port/”
Environment="NO_PROXY=localhost,127.0.0.1 "

注意事项: HTTPS_PROXY后的proxy url也是http开头,而不是https,否则会报错

3 查看环境变量

systemctl show --property=Environment docker

4 更新配置并重启服务

systemctl daemon-reload
systemctl restart docker

Logo

更多推荐