卧槽 见鬼了! Docker 配置国内源之后还走官方源,重启无数遍问题依旧

2024-01-10 00:31:31 +08:00
 fdghjk

问题是修改/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'.

大佬们求指导怎么排查

3692 次点击
所在节点    Docker
30 条回复
fdghjk
2024-01-10 00:37:21 +08:00
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'.
```

离谱!!!!
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 镜像现在只给校园网内部用了么。。所以错误重试到最后的兜底官方镜像了
jayeli
2024-01-10 00:50:39 +08:00
XEdge
2024-01-10 00:55:46 +08:00
laminux29
2024-01-10 01:01:06 +08:00
docker 正确的用法是,第一次拉镜像,在测试机上,挂代理,拉镜像。

拉好镜像,导出到本地文件服务器,后续拉镜像,从本地文件服务器拉。
siweipancc
2024-01-10 03:28:45 +08:00
我看不都不用看就是中大镜像哈哈哈
lazyyz
2024-01-10 05:16:43 +08:00
OP 这是都不看报错和使用说明的嘛
wonderfulcxm
2024-01-10 06:31:03 +08:00
原来不给外人用了,2333
0x0000009C
2024-01-10 09:42:02 +08:00
就是科大源的问题,我装 pve 的时候也是各种重试,最后发现是科大源不给用😅
fdghjk
2024-01-10 10:02:17 +08:00
@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 楼大哥推荐的源,可以拉取了


谢谢大佬
fdghjk
2024-01-10 10:04:59 +08:00
@lazyyz 没往镜像源上面想,我一般会和网易源一起用,腾讯云上用都正常,但是这家 IDC 两个镜像源都不行,我都准备找 IDC 对线了 问 GPT GPT 也说不上来,只能求助 v 友了

谢谢大佬捏
cslive
2024-01-10 11:11:34 +08:00
国内没有可用的镜像,无论哪个都慢
echo1937
2024-01-10 11:17:22 +08:00
感觉国内现在没有好用的源,我买了腾讯云的主机,它自带的源似乎内网、公网访问速度差异很大,阿里云也是。
boris1993Jr
2024-01-10 11:26:26 +08:00
@echo1937 #13 阿里的 Docker 源就他妈血坑,我之前用私有加速链接那个源,配 watchtower 自动更新镜像,结果有一天它把 cloudflare tunnel 的镜像“更新”成了 2022 年的一个版本
我发现容器起不来,而且 cloudflared 的参数都对不上,还去找官方对线来着。然后官方让我检查版本,我才发现这个问题
ysc3839
2024-01-10 11:50:25 +08:00
像 Docker Hub, npm registry, pypi 这类无门槛的 UGC(用户生成内容)平台,做镜像的法律风险的成本都是很高的,因此这类镜像是越来越难用了,个人建议还是直接用代理比较好。
fdghjk
2024-01-10 12:31:44 +08:00
@ysc3839 我也想用代理的 但是国内机比如腾讯云之内的 检测到你开代理,不是说你对外提供服务,你不提供服务,自己用也不行 直接给你封了,对,用都不准用


真的难
HTDit
2024-01-10 12:48:32 +08:00
我们部署工作中,解决问题是不是一半的精力都在处理网络问题。
SingeeKing
2024-01-10 12:55:42 +08:00
docker 的设计是默认走镜像,镜像不通会回归官方 registry ,而报错是不会体现到镜像不通的(始终是最后一步官方 registry 连不上的错误)
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) 的镜像没有做你所说的限制。
vinsony
2024-01-10 14:50:59 +08:00
@boris1993Jr #14 哈哈哈,我又一次也是发现 cloudflare/cloudflared 被更新成个旧版本,真的巨坑

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

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

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

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

© 2021 V2EX