You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu虚拟机中Docker Pull遇连接拒绝问题(企业代理环境)

解决Docker在企业代理环境下pull镜像连接拒绝的问题

我之前在企业代理环境里折腾Docker镜像拉取时,碰到过完全一样的连接拒绝问题,试了好几种方法才搞定,给你几个靠谱的解决方向:

1. 直接给Docker Daemon配置代理(最推荐)

Docker Daemon是独立的系统服务,proxychain这类工具通常只能拦截用户进程的请求,没法覆盖Daemon的网络流量,所以直接给Docker配置代理才是根本解决方案:

  • 先创建Docker服务的配置目录:
    sudo mkdir -p /etc/systemd/system/docker.service.d
    
  • 新建代理配置文件http-proxy.conf:
    sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
    
  • 在文件中填入你的代理信息(替换成实际的代理地址、用户名、密码和端口,注意特殊字符要URL编码,比如@转成%40,#转成%23):
    [Service]
    Environment="HTTP_PROXY=http://your-proxy-user:your-proxy-pass@proxy-host:proxy-port/"
    Environment="HTTPS_PROXY=http://your-proxy-user:your-proxy-pass@proxy-host:proxy-port/"
    Environment="NO_PROXY=localhost,127.0.0.1,192.168.0.0/16"
    
  • 重新加载systemd配置并重启Docker:
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  • 验证代理是否生效:
    docker info | grep -i proxy
    
    如果输出里能看到你设置的HTTP/HTTPS代理,就说明配置成功了,再试试docker pull busybox应该就能正常拉取了。

2. 用Proxychain的话,需要调整Docker网络模式

如果你一定要用proxychain,得让Docker的网络请求走主机网络,这样proxychain才能拦截到:

  • 先检查/etc/proxychains.conf里的代理配置是否正确,确保[ProxyList]下已经添加了你的企业代理:
    http proxy-host proxy-port your-proxy-user your-proxy-pass
    
  • 然后用--net=host参数让Docker共享主机网络,再通过proxychain执行pull命令:
    sudo proxychains docker pull --net=host busybox
    
    或者先测试连通性:
    sudo proxychains docker run --net=host busybox curl https://registry-1.docker.io/v2/
    

3. 排查代理本身的问题

如果上面两种方法都不行,先排除代理本身的问题:

  • 直接用proxychain测试能不能访问Docker镜像仓库:
    sudo proxychains curl https://registry-1.docker.io/v2/
    
    如果这个请求也失败,那可能是:
    • 代理的用户名密码有误,或者特殊字符没转义
    • 企业代理需要将Docker仓库地址加入白名单
    • 代理端口或者地址填错了

内容的提问来源于stack exchange,提问作者Μenelaοs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:16:59