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

人麻了, Docker 镜像配了还一直访问超时,么得日志看好气啊!

  •  
  •   rangoBen · 5 天前 · 1223 次点击

    docker info:

    Debug Mode: true
    Registry Mirrors:
      https://mirror.iscas.ac.cn/
      https://docker.nju.edu.cn/
    
    

    上面两个地址都可以 ping 通

    docker pull mysql:

    Using default tag: latest
    Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    
    

    我到底错哪儿了!我把 GPT 都活剐了。。。

    17 条回复    2024-09-24 16:13:02 +08:00
    photon006
        1
    photon006  
       5 天前
    我今天也是,之前搭建在 cf worker 的源突然用不了,gpt 也无法解决

    后来发现部分镜像可以拉

    docker pull nginx
    docker pull linuxserver/syncthing


    部分不行,比如

    docker pull mzz2017/v2raya

    cf worker 显示日志是这样

    "response": {
    "status": 401
    }

    很迷,看起来 gfw 还能区分镜像名拦截,按理说 https 会加密路径、参数,不科学。
    radiocontroller
        2
    radiocontroller  
       5 天前   ❤️ 1
    https://mirror.ccs.tencentyun.com/ ,用这个试试,放在第一个
    photon006
        3
    photon006  
       5 天前
    @radiocontroller 这个可以,多谢
    rangoBen
        4
    rangoBen  
    OP
       5 天前
    我这还是不行,主要是不清楚为什么没有走镜像地址,还是报错:Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    photon006
        5
    photon006  
       5 天前
    不对,刚才可以拉的机器是腾讯云,换了其他机器还是不行

    Insecure Registries:
    127.0.0.0/8
    Registry Mirrors:
    https://mirror.ccs.tencentyun.com/
    Live Restore Enabled: false

    docker pull mzz2017/v2raya
    docker pull swxk521/udp2raw


    错误日志

    sudo journalctl -u docker.service -f

    Sep 23 21:31:26 gateway dockerd[51811]: time="2024-09-23T21:31:26.642633279+08:00" level=info msg="Attempting next endpoint for pull after error: Get \"https://mirror.ccs.tencentyun.com/v2/\": dial tcp: lookup mirror.ccs.tencentyun.com on 10.13.1.7:53: no such host" spanID=7bd8e1faeac6c529 traceID=c91ef66d2a19e9a64d8fda2b34236a77
    Sep 23 21:31:41 gateway dockerd[51811]: time="2024-09-23T21:31:41.643277798+08:00" level=warning msg="Error getting v2 registry: Get \"https://registry-1.docker.io/v2/\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" spanID=7bd8e1faeac6c529 traceID=c91ef66d2a19e9a64d8fda2b34236a77

    ping mirror.ccs.tencentyun.com
    PING mirror.ccs.tencentyun.com (127.0.0.2) 56(84) bytes of data.
    64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=1 ttl=64 time=0.051 ms
    64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=2 ttl=64 time=0.046 ms
    64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=3 ttl=64 time=0.050 ms

    这个应该只有腾讯云能用,腾讯云机器可以 ping 通
    PING mirror.ccs.tencentyun.com (169.254.0.51) 56(84) bytes of data.
    64 bytes from 169.254.0.51: icmp_seq=1 ttl=64 time=0.105 ms
    64 bytes from 169.254.0.51: icmp_seq=2 ttl=64 time=0.144 ms
    64 bytes from 169.254.0.51: icmp_seq=3 ttl=64 time=0.115 ms

    换了其他人搭建在 cf worker 的源也不行,比如
    {
    "registry-mirrors": ["https://dockerhub.icu"],
    "log-driver":"json-file",
    "log-opts": {"max-size":"1g", "max-file":"1"}
    }
    photon006
        6
    photon006  
       5 天前
    @rangoBen 你看日志

    sudo journalctl -u docker.service -f

    实际上走了镜像源,走不通,回落到官方源 https://registry-1.docker.io/v2/
    coolcoffee
        7
    coolcoffee  
       5 天前
    国内的镜像都死的差不多了吧,像阿里云的镜像加速拉了一个 postgres 的 latest 镜像居然是两年前的我也是醉了。

    快速的解决办法就是手动找 gitpod 或者 github codespace 这类云 ide ,在线拉一个镜像然后用 docker save -o 保存 tar 。更麻烦但是一劳永逸的解决办法就是自建 registry ,设置走代理去拉。
    yov123456
        8
    yov123456  
       5 天前 via iPhone   ❤️ 1
    {
    "registry-mirrors": ["https://registry.dockermirror.com"]
    }
    cdlnls
        9
    cdlnls  
       5 天前
    我一直觉得用代理比镜像好用多了。
    配置简单粗暴,缺点就是服务器上不是那么方便。
    halou12
        10
    halou12  
       4 天前 via iPhone
    应该是 auth.docker.io 的原因
    https://blog.lty520.faith/%E5%8D%9A%E6%96%87/%E8%87%AA%E5%BB%BAdocker-hub%E5%8A%A0%E9%80%9F%E9%95%9C%E5%83%8F/#%e5%8f%82%e8%80%83%e6%96%87%e7%ab%a0
    xiri
        11
    xiri  
       4 天前
    你用的 docker 镜像可能没有对 www-authenticate 请求头做重写,docker pull 的时候会先请求 auth.docker.io 获取认证然后才是从 registry-1.docker.io 拉取镜像文件,然后 auth.docker.io 这个域名大概两周前被墙了,导致只反代/镜像 registry-1.docker.io 资源的站点实际无法拉取成功,最终 failback 到默认源
    DiaoWang
        12
    DiaoWang  
       4 天前 via iPhone
    直接给 docker 挂代理吧,去年在公司折腾好几天都不行
    SeanChang
        13
    SeanChang  
       4 天前 via iPhone
    镜像问题,看看这个:
    Docker/DockerHub 国内镜像源/加速列表( 0921 更新)
    https://xuanyuan.me/blog/archives/1154
    poisedflw
        14
    poisedflw  
       4 天前
    遇到过同样的问题,更换镜像无法解决,最终还是会请求到 registry-1.docker.io (我的是 mysql:5.7 )。解决办法只有配置代理,能上 v2 基本都有代理吧?

    ```
    # /etc/systemd/system/docker.service.d/http_proxy
    [Service]
    Environment="HTTP_PROXY=http://127.0.0.1:7890"
    Environment="HTTPS_PROXY=http://127.0.0.1:7890"
    ```
    Baymaxbowen
        15
    Baymaxbowen  
       4 天前
    https://github.com/DaoCloud/public-image-mirror

    最近发现这个项目,试了一下 速度很不错
    rangoBen
        16
    rangoBen  
    OP
       4 天前
    @halou12 看之前的日志是有这个原因,不过搞代理比较麻烦,我先不弄了。目前我只是学习
    @SeanChang 感谢提供的资源,我直接在 pull 的时候指定 https://dockerproxy.cn 镜像源 可以下载了
    docker pull https://dockerproxy.cn/library/mysql:5.7.44
    ahsgjs
        17
    ahsgjs  
       4 天前
    我才折腾完,和你遇到的问题一样,简要说一下结论:
    1 开 socket5 代理,
    2 再在 docker 设置 http 代理,
    3 然后用 http 转 socket5 的代理转发软件转发(例如 Proxifier )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:27 · PVG 23:27 · LAX 08:27 · JFK 11:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.