V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fdghjk
V2EX  ›  Docker

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

  •  
  •   fdghjk · 2024-01-10 00:31:31 +08:00 · 3662 次点击
    这是一个创建于 374 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    大佬们求指导怎么排查

    30 条回复    2024-05-21 13:00:21 +08:00
    fdghjk
        1
    fdghjk  
    OP
       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
        2
    iyear  
       2024-01-10 00:44:57 +08:00   ❤️ 3
    {"message":"docker.mirrors.ustc.edu.cn is currently USTCnet-only","ip":"43.248.96.170"}

    不是都写了人家的 docker 镜像现在只给校园网内部用了么。。所以错误重试到最后的兜底官方镜像了
    jayeli
        3
    jayeli  
       2024-01-10 00:50:39 +08:00
    XEdge
        4
    XEdge  
       2024-01-10 00:55:46 +08:00
    laminux29
        5
    laminux29  
       2024-01-10 01:01:06 +08:00
    docker 正确的用法是,第一次拉镜像,在测试机上,挂代理,拉镜像。

    拉好镜像,导出到本地文件服务器,后续拉镜像,从本地文件服务器拉。
    siweipancc
        6
    siweipancc  
       2024-01-10 03:28:45 +08:00 via iPhone
    我看不都不用看就是中大镜像哈哈哈
    lazyyz
        7
    lazyyz  
       2024-01-10 05:16:43 +08:00
    OP 这是都不看报错和使用说明的嘛
    wonderfulcxm
        8
    wonderfulcxm  
       2024-01-10 06:31:03 +08:00 via iPhone
    原来不给外人用了,2333
    0x0000009C
        9
    0x0000009C  
       2024-01-10 09:42:02 +08:00
    就是科大源的问题,我装 pve 的时候也是各种重试,最后发现是科大源不给用😅
    fdghjk
        10
    fdghjk  
    OP
       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
        11
    fdghjk  
    OP
       2024-01-10 10:04:59 +08:00
    @lazyyz 没往镜像源上面想,我一般会和网易源一起用,腾讯云上用都正常,但是这家 IDC 两个镜像源都不行,我都准备找 IDC 对线了 问 GPT GPT 也说不上来,只能求助 v 友了

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


    真的难
    HTDit
        17
    HTDit  
       2024-01-10 12:48:32 +08:00 via Android   ❤️ 3
    我们部署工作中,解决问题是不是一半的精力都在处理网络问题。
    SingeeKing
        18
    SingeeKing  
       2024-01-10 12:55:42 +08:00
    docker 的设计是默认走镜像,镜像不通会回归官方 registry ,而报错是不会体现到镜像不通的(始终是最后一步官方 registry 连不上的错误)
    taoky
        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) 的镜像没有做你所说的限制。
    vinsony
        20
    vinsony  
       2024-01-10 14:50:59 +08:00
    @boris1993Jr #14 哈哈哈,我又一次也是发现 cloudflare/cloudflared 被更新成个旧版本,真的巨坑
    0x0000009C
        21
    0x0000009C  
       2024-01-10 15:50:34 +08:00
    echo1937
        22
    echo1937  
       2024-01-10 15:59:04 +08:00
    @fdghjk #16 所以我现在都是买个 x99 洋垃圾,有什么服务都在本地搞好,有需要再把镜像导出来。
    aflow
        23
    aflow  
       2024-01-10 16:02:00 +08:00
    @fdghjk #16 代理绑定到 127.0.0.1 上,我在国内机器上用没出过问题
    taoky
        24
    taoky  
       2024-01-10 16:22:56 +08:00
    @0x0000009C 很可能是你所在的 IP 段因为滥用行为而被封禁了(至少从 2021 年中旬开始一直到现在,国内的各个镜像站就发现有大量的来自不同 IP 的重复下载大文件的请求,恶意占用了大量带宽,并且没有显著的规律)。需要发信至 lug AT ustc.edu.cn 咨询解除封禁。
    HFX3389
        25
    HFX3389  
       2024-01-10 16:33:27 +08:00   ❤️ 1
    @HTDit #17 想起了著名的央视报道开源软件开发者数量突破 800 万的时候用 7890 端口拉 nvidia/tensorRT 镜像
    zx900930
        26
    zx900930  
       2024-01-10 16:48:45 +08:00
    自己用直接走代理,公司用的话搭个 harbor 把要用的镜像先下好,反正生产基本不会动中间件的镜像版本。
    joyhub2140
        27
    joyhub2140  
       2024-01-10 17:01:15 +08:00
    有几次梯子商家跑路了,写好的代码,传 github 不行,拉 docker hub 不行,上去 reddit 请教大佬也不行,内心最窝火的时候,差点买票过去隔壁香港住几天。
    D33109
        28
    D33109  
       2024-01-16 09:58:21 +08:00
    重庆邮电的源也可以用,貌似用的人不是很多
    snuglove
        29
    snuglove  
       2024-01-19 15:28:40 +08:00
    长知识了。
    512357301
        30
    512357301  
       242 天前 via Android
    可以试试 dockerproxy.com ,就是在官方镜像前面加上这个网址,类似 ubuntu 这样的,就得额外加 library ,类似:dockerproxy.com/library/ubuntu
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2599 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:43 · PVG 18:43 · LAX 02:43 · JFK 05:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.