
问题是修改/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 2024-01-10 00:44:57 +08:00 {"message":"docker.mirrors.ustc.edu.cn is currently USTCnet-only","ip":"43.248.96.170"} 不是都写了人家的 docker 镜像现在只给校园网内部用了么。。所以错误重试到最后的兜底官方镜像了 |
3 jayeli 2024-01-10 00:50:39 +08:00 |
4 XEdge 2024-01-10 00:55:46 +08:00 |
5 laminux29 2024-01-10 01:01:06 +08:00 docker 正确的用法是,第一次拉镜像,在测试机上,挂代理,拉镜像。 拉好镜像,导出到本地文件服务器,后续拉镜像,从本地文件服务器拉。 |
6 siweipancc 2024-01-10 03:28:45 +08:00 via iPhone 我看不都不用看就是中大镜像哈哈哈 |
7 lazyyz 2024-01-10 05:16:43 +08:00 OP 这是都不看报错和使用说明的嘛 |
8 wonderfulcxm 2024-01-10 06:31:03 +08:00 via iPhone 原来不给外人用了,2333 |
9 0x0000009C 2024-01-10 09:42:02 +08:00 就是科大源的问题,我装 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 楼大哥推荐的源,可以拉取了 谢谢大佬 |
&nsp; 11 fdghjk OP @lazyyz 没往镜像源上面想,我一般会和网易源一起用,腾讯云上用都正常,但是这家 IDC 两个镜像源都不行,我都准备找 IDC 对线了 问 GPT GPT 也说不上来,只能求助 v 友了 谢谢大佬捏 |
12 cslive 2024-01-10 11:11:34 +08:00 国内没有可用的镜像,无论哪个都慢 |
13 echo1937 2024-01-10 11:17:22 +08:00 感觉国内现在没有好用的源,我买了腾讯云的主机,它自带的源似乎内网、公网访问速度差异很大,阿里云也是。 |
14 boris1993Jr 2024-01-10 11:26:26 +08:00 via iPhone @echo1937 #13 阿里的 Docker 源就他妈血坑,我之前用私有加速链接那个源,配 watchtower 自动更新镜像,结果有一天它把 cloudflare tunnel 的镜像“更新”成了 2022 年的一个版本 我发现容器起不来,而且 cloudflared 的参数都对不上,还去找官方对线来着。然后官方让我检查版本,我才发现这个问题 |
15 ysc3839 2024-01-10 11:50:25 +08:00 via Android 像 Docker Hub, npm registry, pypi 这类无门槛的 UGC(用户生成内容)平台,做镜像的法律风险的成本都是很高的,因此这类镜像是越来越难用了,个人建议还是直接用代理比较好。 |
16 fdghjk OP |
17 HTDit 2024-01-10 12:48:32 +08:00 via Android 我们部署工作中,解决问题是不是一半的精力都在处理网络问题。 |
18 SingeeKing PRO docker 的设计是默认走镜像,镜像不通会回归官方 registry ,而报错是不会体现到镜像不通的(始终是最后一步官方 registry 连不上的错误) |
19 taoky 2024-01-10 13:45:28 +08:00 registry 是 cache 而不是全量镜像,结果 hit rate 非常低,导致从镜像站下载比直接从官方拉还要慢得多,所以只能(对校外)关掉。以及即使不关掉,Docker Hub 自己也有访问频率限制了(登录状态下每 6 小时只允许 200 次 pull ),即使不关使用体验也不会好到哪里去。 https://mirrors.ustc.edu.cn/help/dockerhub.html#id6 提供了本地搭 registry 缓存的方法,和科大镜像站线上部署的是完全一致的。 @0x0000009C pve (proxmox) 的镜像没有做你所说的限制。 |
20 vinsony 2024-01-10 14:50:59 +08:00 @boris1993Jr #14 哈哈哈,我又一次也是发现 cloudflare/cloudflared 被更新成个旧版本,真的巨坑 |
21 0x0000009C 2024-01-10 15:50:34 +08:00 |
24 taoky 2024-01-10 16:22:56 +08:00 @0x0000009C 很可能是你所在的 IP 段因为滥用行为而被封禁了(至少从 2021 年中旬开始一直到现在,国内的各个镜像站就发现有大量的来自不同 IP 的重复下载大文件的请求,恶意占用了大量带宽,并且没有显著的规律)。需要发信至 lug AT ustc.edu.cn 咨询解除封禁。 |
25 HFX3389 2024-01-10 16:33:27 +08:00 @HTDit #17 想起了著名的央视报道开源软件开发者数量突破 800 万的时候用 7890 端口拉 nvidia/tensorRT 镜像 |
26 zx900930 2024-01-10 16:48:45 +08:00 自己用直接走代理,公司用的话搭个 harbor 把要用的镜像先下好,反正生产基本不会动中间件的镜像版本。 |
27 nxforce 2024-01-10 17:01:15 +08:00 有几次梯子商家跑路了,写好的代码,传 github 不行,拉 docker hub 不行,上去 reddit 请教大佬也不行,内心最窝火的时候,差点买票过去隔壁香港住几天。 |
28 D33109 2024-01-16 09:58:21 +08:00 重庆邮电的源也可以用,貌似用的人不是很多 |
29 snuglove 2024-01-19 15:28:40 +08:00 长知识了。 |
30 512357301 2024-05-21 13:00:21 +08:00 via Android 可以试试 dockerproxy.com ,就是在官方镜像前面加上这个网址,类似 ubuntu 这样的,就得额外加 library ,类似:dockerproxy.com/library/ubuntu 。 |