问题是修改/etc/docker/daemon.json 的源为国内源之后,Docker 还是走官方源导致拉取镜像失败。
这个问题只出现在一台国内主机上,其他的国内主机都正常,就这个 nat 机搞特殊
刚装好的 debian12 最新版本系统,最干净的状态,然后装的最新的 Docker ,按照官方的脚本手动安装的,之前安装过无数遍了,排除是安装错误的问题
运行 docker info
Client: Docker Engine - Community
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.21.0
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 24.0.7
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 3dd1e886e55dd695541fdcd67420c2888645a495
runc version: v1.1.10-0-g18a0cb0
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.1.0-17-cloud-amd64
Operating System: Debian GNU/Linux 12 (bookworm)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.937GiB
Name: ser074984144056
ID: 1235fff6-aa25-48a0-a26f-2863a7daceb4
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
重启 docker 并且 重启 vps
然后拉取 Nginx 测试,docker run -d --name nginx nginx
然后就是报错
Unable to find image 'nginx:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 172.16.0.45:38932->34.226.69.105:443: read: connection reset by peer.
See 'docker run --help'.
大佬们求指导怎么排查
1
fdghjk OP curl https://docker.mirrors.ustc.edu.cn
{"message":"docker.mirrors.ustc.edu.cn is currently USTCnet-only","ip":"43.248.96.170"} ---- docker run -d --name nginx nginx ``` Unable to find image 'nginx:latest' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 172.16.0.45:46072->54.196.99.49:443: read: connection reset by peer. See 'docker run --help'. ``` 离谱!!!! |
2
iyear 318 天前 3
{"message":"docker.mirrors.ustc.edu.cn is currently USTCnet-only","ip":"43.248.96.170"}
不是都写了人家的 docker 镜像现在只给校园网内部用了么。。所以错误重试到最后的兜底官方镜像了 |
4
XEdge 318 天前
|
5
laminux29 318 天前
docker 正确的用法是,第一次拉镜像,在测试机上,挂代理,拉镜像。
拉好镜像,导出到本地文件服务器,后续拉镜像,从本地文件服务器拉。 |
6
siweipancc 318 天前 via iPhone
我看不都不用看就是中大镜像哈哈哈
|
7
lazyyz 318 天前
OP 这是都不看报错和使用说明的嘛
|
8
wonderfulcxm 318 天前 via iPhone
原来不给外人用了,2333
|
9
0x0000009C 318 天前
就是科大源的问题,我装 pve 的时候也是各种重试,最后发现是科大源不给用😅
|
10
fdghjk OP @iyear 卧槽!!!!!!!!!!!!!!!!!!!!!!!!!!啥时候不让的 ? 还真没想往源上想,因为我一般是弄两个源,一个科大源,一个网易源,我在腾讯云的机器上都是可以用的,前两天才用过。我心想,总不能两个源都不能用吧,我一直以为是 IDC 的问题,并且准备找他们对线了,,,
``` Insecure Registries: 127.0.0.0/8 Registry Mirrors: http://hub-mirror.c.163.com/ http://docker.mirrors.ustc.edu.cn/ Live Restore Enabled: false ``` 可问题是,我在腾讯云的机器上这两个源一起用,总是可以拉取成功的,虽然不知道到底走的那个源,,,, 目前我换到#3 楼大哥推荐的源,可以拉取了 谢谢大佬 |
11
fdghjk OP @lazyyz 没往镜像源上面想,我一般会和网易源一起用,腾讯云上用都正常,但是这家 IDC 两个镜像源都不行,我都准备找 IDC 对线了 问 GPT GPT 也说不上来,只能求助 v 友了
谢谢大佬捏 |
12
cslive 318 天前
国内没有可用的镜像,无论哪个都慢
|
13
echo1937 318 天前
感觉国内现在没有好用的源,我买了腾讯云的主机,它自带的源似乎内网、公网访问速度差异很大,阿里云也是。
|
14
boris1993Jr 318 天前 via iPhone
@echo1937 #13 阿里的 Docker 源就他妈血坑,我之前用私有加速链接那个源,配 watchtower 自动更新镜像,结果有一天它把 cloudflare tunnel 的镜像“更新”成了 2022 年的一个版本
我发现容器起不来,而且 cloudflared 的参数都对不上,还去找官方对线来着。然后官方让我检查版本,我才发现这个问题 |
15
ysc3839 318 天前 via Android
像 Docker Hub, npm registry, pypi 这类无门槛的 UGC(用户生成内容)平台,做镜像的法律风险的成本都是很高的,因此这类镜像是越来越难用了,个人建议还是直接用代理比较好。
|
16
fdghjk OP |
17
HTDit 318 天前 via Android 3
我们部署工作中,解决问题是不是一半的精力都在处理网络问题。
|
18
SingeeKing 318 天前
docker 的设计是默认走镜像,镜像不通会回归官方 registry ,而报错是不会体现到镜像不通的(始终是最后一步官方 registry 连不上的错误)
|
19
taoky 318 天前
registry 是 cache 而不是全量镜像,结果 hit rate 非常低,导致从镜像站下载比直接从官方拉还要慢得多,所以只能(对校外)关掉。以及即使不关掉,Docker Hub 自己也有访问频率限制了(登录状态下每 6 小时只允许 200 次 pull ),即使不关使用体验也不会好到哪里去。
https://mirrors.ustc.edu.cn/help/dockerhub.html#id6 提供了本地搭 registry 缓存的方法,和科大镜像站线上部署的是完全一致的。 @0x0000009C pve (proxmox) 的镜像没有做你所说的限制。 |
20
vinsony 318 天前
@boris1993Jr #14 哈哈哈,我又一次也是发现 cloudflare/cloudflared 被更新成个旧版本,真的巨坑
|
21
0x0000009C 318 天前
|
24
taoky 318 天前
@0x0000009C 很可能是你所在的 IP 段因为滥用行为而被封禁了(至少从 2021 年中旬开始一直到现在,国内的各个镜像站就发现有大量的来自不同 IP 的重复下载大文件的请求,恶意占用了大量带宽,并且没有显著的规律)。需要发信至 lug AT ustc.edu.cn 咨询解除封禁。
|
26
zx900930 318 天前
自己用直接走代理,公司用的话搭个 harbor 把要用的镜像先下好,反正生产基本不会动中间件的镜像版本。
|
27
joyhub2140 318 天前
有几次梯子商家跑路了,写好的代码,传 github 不行,拉 docker hub 不行,上去 reddit 请教大佬也不行,内心最窝火的时候,差点买票过去隔壁香港住几天。
|
28
D33109 312 天前
重庆邮电的源也可以用,貌似用的人不是很多
|
29
snuglove 309 天前
长知识了。
|
30
512357301 186 天前 via Android
可以试试 dockerproxy.com ,就是在官方镜像前面加上这个网址,类似 ubuntu 这样的,就得额外加 library ,类似:dockerproxy.com/library/ubuntu 。
|