人麻了, Docker 镜像配了还一直访问超时,么得日志看好气啊!

87 天前
 rangoBen

docker info:

Debug Mode: true
Registry Mirrors:
  https://mirror.iscas.ac.cn/
  https://docker.nju.edu.cn/

上面两个地址都可以 ping 通

docker pull mysql:

Using default tag: latest
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)

我到底错哪儿了!我把 GPT 都活剐了。。。

2348 次点击
所在节点    Docker
17 条回复
photon006
87 天前
我今天也是,之前搭建在 cf worker 的源突然用不了,gpt 也无法解决

后来发现部分镜像可以拉

docker pull nginx
docker pull linuxserver/syncthing


部分不行,比如

docker pull mzz2017/v2raya

cf worker 显示日志是这样

"response": {
"status": 401
}

很迷,看起来 gfw 还能区分镜像名拦截,按理说 https 会加密路径、参数,不科学。
radiocontroller
87 天前
https://mirror.ccs.tencentyun.com/ ,用这个试试,放在第一个
photon006
87 天前
@radiocontroller 这个可以,多谢
rangoBen
87 天前
我这还是不行,主要是不清楚为什么没有走镜像地址,还是报错: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)
photon006
87 天前
不对,刚才可以拉的机器是腾讯云,换了其他机器还是不行

Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://mirror.ccs.tencentyun.com/
Live Restore Enabled: false

docker pull mzz2017/v2raya
docker pull swxk521/udp2raw


错误日志

sudo journalctl -u docker.service -f

Sep 23 21:31:26 gateway dockerd[51811]: time="2024-09-23T21:31:26.642633279+08:00" level=info msg="Attempting next endpoint for pull after error: Get \"https://mirror.ccs.tencentyun.com/v2/\": dial tcp: lookup mirror.ccs.tencentyun.com on 10.13.1.7:53: no such host" spanID=7bd8e1faeac6c529 traceID=c91ef66d2a19e9a64d8fda2b34236a77
Sep 23 21:31:41 gateway dockerd[51811]: time="2024-09-23T21:31:41.643277798+08:00" level=warning msg="Error getting v2 registry: Get \"https://registry-1.docker.io/v2/\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" spanID=7bd8e1faeac6c529 traceID=c91ef66d2a19e9a64d8fda2b34236a77

ping mirror.ccs.tencentyun.com
PING mirror.ccs.tencentyun.com (127.0.0.2) 56(84) bytes of data.
64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=1 ttl=64 time=0.051 ms
64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=3 ttl=64 time=0.050 ms

这个应该只有腾讯云能用,腾讯云机器可以 ping 通
PING mirror.ccs.tencentyun.com (169.254.0.51) 56(84) bytes of data.
64 bytes from 169.254.0.51: icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from 169.254.0.51: icmp_seq=2 ttl=64 time=0.144 ms
64 bytes from 169.254.0.51: icmp_seq=3 ttl=64 time=0.115 ms

换了其他人搭建在 cf worker 的源也不行,比如
{
"registry-mirrors": ["https://dockerhub.icu"],
"log-driver":"json-file",
"log-opts": {"max-size":"1g", "max-file":"1"}
}
photon006
87 天前
@rangoBen 你看日志

sudo journalctl -u docker.service -f

实际上走了镜像源,走不通,回落到官方源 https://registry-1.docker.io/v2/
coolcoffee
87 天前
国内的镜像都死的差不多了吧,像阿里云的镜像加速拉了一个 postgres 的 latest 镜像居然是两年前的我也是醉了。

快速的解决办法就是手动找 gitpod 或者 github codespace 这类云 ide ,在线拉一个镜像然后用 docker save -o 保存 tar 。更麻烦但是一劳永逸的解决办法就是自建 registry ,设置走代理去拉。
yov123456
87 天前
{
"registry-mirrors": ["https://registry.dockermirror.com"]
}
cdlnls
87 天前
我一直觉得用代理比镜像好用多了。
配置简单粗暴,缺点就是服务器上不是那么方便。
halou12
87 天前
应该是 auth.docker.io 的原因
https://blog.lty520.faith/%E5%8D%9A%E6%96%87/%E8%87%AA%E5%BB%BAdocker-hub%E5%8A%A0%E9%80%9F%E9%95%9C%E5%83%8F/#%e5%8f%82%e8%80%83%e6%96%87%e7%ab%a0
xiri
87 天前
你用的 docker 镜像可能没有对 www-authenticate 请求头做重写,docker pull 的时候会先请求 auth.docker.io 获取认证然后才是从 registry-1.docker.io 拉取镜像文件,然后 auth.docker.io 这个域名大概两周前被墙了,导致只反代/镜像 registry-1.docker.io 资源的站点实际无法拉取成功,最终 failback 到默认源
DiaoWang
87 天前
直接给 docker 挂代理吧,去年在公司折腾好几天都不行
SeanChang
87 天前
镜像问题,看看这个:
Docker/DockerHub 国内镜像源/加速列表( 0921 更新)
https://xuanyuan.me/blog/archives/1154
poisedflw
86 天前
遇到过同样的问题,更换镜像无法解决,最终还是会请求到 registry-1.docker.io (我的是 mysql:5.7 )。解决办法只有配置代理,能上 v2 基本都有代理吧?

```
# /etc/systemd/system/docker.service.d/http_proxy
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
```
Baymaxbowen
86 天前
https://github.com/DaoCloud/public-image-mirror

最近发现这个项目,试了一下 速度很不错
rangoBen
86 天前
@halou12 看之前的日志是有这个原因,不过搞代理比较麻烦,我先不弄了。目前我只是学习
@SeanChang 感谢提供的资源,我直接在 pull 的时候指定 https://dockerproxy.cn 镜像源 可以下载了
docker pull https://dockerproxy.cn/library/mysql:5.7.44
ahsgjs
86 天前
我才折腾完,和你遇到的问题一样,简要说一下结论:
1 开 socket5 代理,
2 再在 docker 设置 http 代理,
3 然后用 http 转 socket5 的代理转发软件转发(例如 Proxifier )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075186

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX