Docker Compose Pull 超时与代理踩坑记录

Docker Compose Pull 超时与代理踩坑记录

问题一:docker compose pull 直接超时

报错

bash 复制代码
> docker compose pull
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 108.160.170.33:443: i/o timeout (Client.Timeout exceeded while awaiting headers)

原因

Docker daemon 无法直连 Docker Hub(国内网络被阻断)。

解决办法

给 Docker 配代理,让 daemon 走代理访问外网。

bash 复制代码
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/proxy.conf

内容

ini 复制代码
[Service]
Environment="HTTP_PROXY=http://172.24.48.1:7890"
Environment="HTTPS_PROXY=http://172.24.48.1:7890"
Environment="NO_PROXY=localhost,172.24.48.1"

然后

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

问题二:配置代理后仍然失败

报错

bash 复制代码
> docker compose pull
Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 172.24.48.247:60752->172.24.48.1:7890: read: connection reset by peer

定位方式

bash 复制代码
curl -I https://registry-1.docker.io/v2/ --proxy http://172.24.48.1:7890

结果

vbnet 复制代码
HTTP/1.1 200 Connection established 
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to registry-1.docker.io:443

原因

docker域名没有设置代理规则,走了直连

解决办法

在代理(如 Clash)中强制 Docker Hub 走代理

yaml 复制代码
rules:
  - DOMAIN,registry-1.docker.io,PROXY
  - DOMAIN,auth.docker.io,PROXY
  - DOMAIN-SUFFIX,docker.com,PROXY
  - DOMAIN-SUFFIX,docker.io,PROXY

重启 Clash,再试

最终验证

bash 复制代码
curl -I https://registry-1.docker.io/v2/ --proxy http://172.24.48.1:7890
# 成功

docker compose pull
# 成功

优化

  1. 为避免每次拉取新的clash配置时重置自定义 rules,将上述 docker rules 设置到 mixins 中
js 复制代码
module.exports.parse = ({ content, name, url }, { yaml, axios, notify }) => {
  const rules = [
    // ...

    // docker
    "DOMAIN-SUFFIX,docker.com,PROXY",
    "DOMAIN-SUFFIX,docker.io,PROXY",
    "DOMAIN,registry-1.docker.io,PROXY",
    "DOMAIN,auth.docker.io,PROXY"
  ]
  content.rules.unshift(...rules)
  return content
}
相关推荐
葡萄城技术团队4 小时前
1000 人协同压测的环境瓶颈排查:CPU 争用与 Wi\-Fi
前端
excel5 小时前
Marked 与 Markdown 有什么区别?该怎么选?
前端
Da Da 泓6 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
zxcvb1536 小时前
远程查看本地文档:一条轻量 Web 文件服务的工程化链路
前端·远程查看文档
niucloud-admin7 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
北岛贰7 小时前
啵啵音乐迎来全新升级!
前端
hkNaruto9 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒9 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
Acro9 小时前
快给macOS 上的Grok Bot换一套皮肤
前端
flash俊杰9 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端