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

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

  •  
  •   fdghjk · 296 天前 · 3374 次点击
    这是一个创建于 296 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题是修改/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
       296 天前
    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  
       296 天前   ❤️ 3
    {"message":"docker.mirrors.ustc.edu.cn is currently USTCnet-only","ip":"43.248.96.170"}

    不是都写了人家的 docker 镜像现在只给校园网内部用了么。。所以错误重试到最后的兜底官方镜像了
    XEdge
        4
    XEdge  
       296 天前
    laminux29
        5
    laminux29  
       296 天前
    docker 正确的用法是,第一次拉镜像,在测试机上,挂代理,拉镜像。

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

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


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