news 2026/2/4 21:59:48

Colima 下 docker pull 失败自查流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Colima 下 docker pull 失败自查流程

macOS + Colima 下docker pull超时问题排查总结

一、问题现象

在 macOS 上使用colima运行 Docker service 时,执行:

docker pull BALABALA

报错:

Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

二、核心结论(先给答案)

Docker daemon 无法直连 Docker Hub,必须通过代理访问,但 daemon 并没有正确使用代理配置

shell / curl 能走代理 ≠ Docker daemon 会走代理
必须通过systemd给 Docker daemon 显式配置代理。


三、完整排查思路

1️⃣ 确认是否是网络问题,而非镜像本身

docker pull hello-world
  • 同样超时 → 不是镜像名问题,而是 Docker 出网问题

2️⃣ 进入 Colima VM,直接测试网络

colimassh
DNS 测试(正常)
getent hosts registry-1.docker.io# 也可以 nslookup

→ 能解析到 IP,说明DNS 正常

HTTPS 连通性测试(关键)
curl-Iv https://registry-1.docker.io/v2/

输出显示:

Uses proxy env variable https_proxy == 'http://PROXY_INFO_HERE' CONNECT registry-1.docker.io:443

→ curl 在通过代理访问 Docker Hub


3️⃣ 判断:是否“必须走代理”

清空所有代理变量,强制直连:

env-u https_proxy -u http_proxy -u all_proxy -u no_proxy\-u HTTPS_PROXY -u HTTP_PROXY -u ALL_PROXY -u NO_PROXY\curl-Iv https://registry-1.docker.io/v2/ --max-time15

结果:

Connection timed out

✅ 结论明确:

直连 Docker Hub 会超时,必须通过代理访问


4️⃣ 问题根因定位

查看 VM 内环境变量:

env|egrep-i"https?_proxy|all_proxy|no_proxy"
HTTPS_PROXY=http://HERE https_proxy=http://ARE http_proxy=http://MY HTTP_PROXY=http://PROXY

➡️Shell / curl 有代理

⚠️但 Docker daemon 并不会自动继承这些环境变量


四、最终解决方案(关键步骤)

✅ 通过 systemd 给 Docker daemon 固化代理配置

colimasshsudomkdir-p /etc/systemd/system/docker.service.d

创建代理配置:

sudotee/etc/systemd/system/docker.service.d/proxy.conf>/dev/null<<'EOF' [Service] Environment="HTTP_PROXY=http://PROXY" Environment="HTTPS_PROXY=http://HERE" Environment="NO_PROXY=localhost,127.0.0.1" EOF

让 systemd 重新加载并重启 Docker:

sudosystemctl daemon-reloadsudosystemctl restart dockerexit

✅ 验证配置是否生效

colimassh-- systemctl show docker -p Environment

确认能看到:

Environment=HTTP_PROXY=... HTTPS_PROXY=...

✅ 最终验证

docker pull sean908/THE_IMAGE_YOU_NEED

🎉拉取成功,问题解决


五、关键经验总结(非常重要)

1️⃣ macOS 上的代理 ≠ Colima VM 的代理

2️⃣ Shell 的代理 ≠ Docker daemon 的代理

3️⃣ Docker daemon 必须用 systemd 显式配置代理

4️⃣ 排查顺序永远是:

DNS → 直连 → 代理 → daemon 是否真正使用代理


六、TL;DR

在 Colima / Lima / Linux VM 中,docker pull超时,90% 是 Docker daemon 没正确走代理;curl 能通不代表 docker 能通。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 22:50:27

JavaScript学习笔记:15.迭代器与生成器

JavaScript学习笔记&#xff1a;15.迭代器与生成器 上一篇用类型数组搞定了二进制数据的“高效存储”&#xff0c;这一篇咱们解锁JS遍历的“终极形态”——迭代器&#xff08;Iterators&#xff09;与生成器&#xff08;Generators&#xff09;。你肯定用过for循环遍历数组&…

作者头像 李华
网站建设 2026/2/3 6:08:46

探索Comsol/CST狄拉克半金属BDS超材料:Matlab脚本与CST模型分享

Comsol/CST狄拉克半金属BDS超材料。 matlab脚本&#xff0c;送几个CST模型嘿&#xff0c;各位技术同好们&#xff01;今天来聊聊超有趣的Comsol/CST狄拉克半金属BDS超材料。狄拉克半金属近年来在材料物理和电磁学领域那可是相当热门&#xff0c;而基于它的BDS超材料更是展现出独…

作者头像 李华
网站建设 2026/2/3 17:58:36

【系列四】边界防御:动静结合,全向防护

摘要&#xff1a; 在高级威胁&#xff08;APT&#xff09;、勒索病毒、0-day漏洞频发的今天&#xff0c;传统的静态防御已难以为继。网际思安以“网关双动态沙箱”的联动机制&#xff0c;为企业构建起动静结合、全向防护的邮件边界钢铁长城&#xff0c;让威胁无所遁形。在上一篇…

作者头像 李华
网站建设 2026/2/4 16:43:12

secp256k1算法详解四(关键点补充说明)

magnitude及normalized由于当前许多项目都用到secp256k1库&#xff0c;比特币作为体量最大的数字货币项目&#xff0c;这里建议直接参考bitcoin-core提供的最新secp256k1源码。仍以field的10x26实现版本为例&#xff0c;相关定义如下&#xff1a;复制代码/** This field implem…

作者头像 李华
网站建设 2026/2/3 23:50:42

巴鲁夫RFID与西门子1500通讯及IO LINK通讯实战

巴鲁夫RFID与西门子1500通讯程序案例&#xff0c;以及巴鲁夫的IO LINK通讯案例与博图配置&#xff0c;有相关的资料手册与配置教程。 现场调试巴鲁夫相关配置资料。在工业自动化领域&#xff0c;设备之间的高效通讯至关重要。今天就来分享巴鲁夫RFID与西门子1500通讯程序案例&a…

作者头像 李华
网站建设 2026/2/3 0:25:28

Python的yield

yield带有 yield 的函数在 Python 中被称之为 generator&#xff08;生成器&#xff09;def simple_generator():print("开始执行")yield 1print("继续执行")yield 2print("结束")# 创建生成器对象 gen simple_generator() print(type(gen)) #…

作者头像 李华