需求:
由于公司服务器无法正常访问公网,想要下载一些外部依赖包需要配置公司的内部代理。
Docker构建镜像或拉取镜像时需要通过代理访问外网,可以按照以下步骤设置HTTP代理
目录
创建目录
创建并编辑配置文件
重新加载Docker服务配置
重启Docker服务
检验是否加载配置
如果配置成功则显示
测试验证
创建或编辑Docker服务配置文件
如果您使用systemd管理Docker服务,可以编辑该服务的配置文件/etc/systemd/system/docker.service.d/http-proxy.conf。
如果文件不存在,可以创建该文件。或者是docker.service文件
创建目录
sudo mkdir -p /etc/systemd/system/docker.service.d
创建并编辑配置文件
vim /etc/systemd/system/docker.service.d/http-proxy.conf
编辑该文件,添加以下内容:
[Service]
Environment="http_proxy=http://proxy.example.com:80/"
Environment="https_proxy=https://proxy.example.com:443/"
Environment="no_proxy=localhost,127.0.0.1,docker-registry.example.com"
注意:
将http://proxy.example.com:port/和https://proxy.example.com:port/替换为您的代理服务器地址和端口。
最后一行no_proxy是一个忽略代理的列表,其中localhost、127.0.0.1和docker-registry.example.com是不需要代理的地址。您可以根据实际需求修改。
重新加载Docker服务配置
执行以下命令重新加载Docker服务配置:
sudo systemctl daemon-reload
重启Docker服务
执行以下命令重启Docker服务使配置生效:
sudo systemctl restart docker
检验是否加载配置
systemctl show --property=Environment docker
如果配置成功则显示
Environment=HTTP_PROXY=http://proxy.example.com:80/
此时Docker将在启动时自动读取代理配置,并在构建镜像或拉取镜像时使用代理。
需要注意的是,如果您的代理服务器需要用户名和密码验证,需要将代理地址和端口改为以下格式:
http://username:password@proxy.example.com:80/
https://username:password@proxy.example.com:443/
并将用户名、密码替换为您的代理服务器验证信息。
测试验证
docker search redis
若能通过代理连上外网
Docker官网详细说明点击跳转