Docker配置代理访问网络ubuntu24.04
本文将详细介绍如何根据系统代理配置,正确设置 Docker 的代理环境变量,使其能够通过代理服务器进行网络访问。
一、查看系统代理配置
首先,我们查看了系统的代理配置:
以下是图片内容的文字描述:
Proxy 设置
- Network Proxy: 已开启
 - Configuration: 手动 (Manual)
 
HTTP Proxy
- URL: 
127.0.0.1 - Port: 
20171 
HTTPS Proxy
- URL: (未填写)
 - Port: 
0 
FTP Proxy
- URL: (未填写)
 - Port: 
0 
SOCKS Host
- URL: 
127.0.0.1 - Port: 
20170 
Ignored Hosts
localhost, 127.0.0.0/8, ::1
根据配置界面,可以看到:
- Network Proxy: 已经启用。
 - HTTP Proxy: 代理服务器地址是 
127.0.0.1,端口是20171。 - SOCKS Host: 代理服务器地址是 
127.0.0.1,端口是20170。 
为了确保 Docker 可以通过该代理进行网络访问,我们需要将这些配置应用到 Docker 的环境变量中。
二、为 Docker 配置代理
1. 创建 Docker 代理配置目录
首先,为 Docker 服务创建一个代理配置目录(如果不存在):
sudo mkdir -p /etc/systemd/system/docker.service.d
2. 创建并编辑 http-proxy.conf 配置文件
使用 vim 或其他编辑器创建并编辑 /etc/systemd/system/docker.service.d/http-proxy.conf 文件:
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
在文件中添加以下内容,根据系统代理设置进行了详细配置:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:20171/"
Environment="HTTPS_PROXY=http://127.0.0.1:20171/"
Environment="NO_PROXY=localhost,127.0.0.0/8,::1"
配置说明:
HTTP_PROXY:指定 HTTP 代理地址,使用127.0.0.1:20171,与系统代理设置一致。HTTPS_PROXY:指定 HTTPS 代理地址,仍然使用127.0.0.1:20171,确保 Docker 可以通过代理进行 HTTPS 请求。NO_PROXY:指定不需要通过代理的地址列表,包括本地主机localhost、127.0.0.0/8和 IPv6 本地地址::1。
3. 重新加载 systemd 并重启 Docker 服务
配置完成后,重新加载 systemd 配置,并重启 Docker 服务,使更改生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 验证代理配置是否生效
使用以下命令验证 Docker 是否正确使用了代理设置:
docker info | grep -i proxy
如果配置成功,你应该会看到类似以下的输出:
 HTTP Proxy: http://127.0.0.1:20171/
 HTTPS Proxy: http://127.0.0.1:20171/
 No Proxy: localhost,127.0.0.0/8,::1
四、使用
通过上述步骤,我们成功将系统代理设置应用到了 Docker 中,使得 Docker 可以通过指定的代理服务器进行网络访问。在复杂网络环境中,这种配置可以有效地解决 Docker 访问网络超时、无法连接 Docker Hub 等问题。
进而我们可以正常使用 docker 命令而不用担心网络问题了:
docker search nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04
docker image pull nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04
                    
                
                
            
        
浙公网安备 33010602011771号