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 分钟前
Edge AI 时代:从数据中心到终端,算力如何无处不在?
前端·人工智能·edge
Highcharts.js5 分钟前
Highcharts v13 全新时间轴标签边界格式|让时间维度表达更智能
前端·信息可视化·时间序列·图表开发·chart·自定义标签·可视化开发
lichenyang4536 分钟前
鸿蒙研读 10:@Provider/@Consumer、RelativeContainer、onNewWant
前端
大湿兄啊啊啊11 分钟前
MID360S调试
java·服务器·前端
绺年13 分钟前
模块化加载机制与循环依赖的探索
前端
Csvn22 分钟前
前端技术 - 前端技术债务
前端
Days205032 分钟前
Flyfish Viewer:全能纯前端多格式文件预览组件,解锁浏览器端无门槛预览新体验
前端
selfsuer33 分钟前
【奇奇怪怪前端问题记录】
前端
不要额外加糖35 分钟前
给 Codex 戴上紧箍, 治一治 AI 的过度发挥
前端·人工智能·代码规范