【问题标题】:How to solve i/o timeout error in docker pull如何解决 docker pull 中的 i/o 超时错误
【发布时间】:2018-06-11 01:12:26
【问题描述】:

尝试命令时:

docker pull alpine

我收到以下错误

拉取镜像配置错误:Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/e2/e21c333399e0aeedfd70e8827c9fba3f8e9b170ef8a48a29945eb7702bf6aa5f/data?Expires=1514733515&Signature=VxGVBTpdVnoFQYVSYjf-xOAYENczOPcAp7BZsxEZI6EyoiRgvKsOmxFkb7MgCMau~yVa59uHJcdq5KmCWKD6G3Cnsr2V2CdXrEIZ~P-Kt-74m8LKsjbTzw2yw~ABuLOs5c7OI9-2LFB5XOrFjgBaDUKPGDpyWsLMLz7QAh-vNrM_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: dial tcp 218.248.255.164:443: i/o timeout

docker --version17.09.1-ce, build 19e2cf6docker-compose --version1.17.1, build 6d101fb。从 OSX El Capitan 尝试这些命令。

有人建议将 DNS 服务器更改为公共 DNS 可以解决这个问题,但也没有用。

【问题讨论】:

  • 尝试ping这个主机https://dseasb33srnrn.cloudfront.net,它工作正常吗?
  • @mohammed 不,它不起作用。
  • 您的docker-machine 版本是什么? github.com/docker/for-mac/issues/1132,你看过了吗?
  • 好的,那么你可以说这是Docker 问题,这是DNS 问题(因为主机响应我的ping,意味着问题出在你的DNS 设置中)。我会发布一个答案。

标签: docker dns docker-compose dockerfile docker-machine


【解决方案1】:

正如 cmets 中所述,您尝试 ping 主机 dseasb33srnrn.cloudfront.net 但它没有响应(它响应我的 ping),这意味着问题出在您的系统 DNS 设置中,而不是在 Docker

请检查 /etc/resolv.conf 中的 DNS 设置,如果您不确定该怎么做,只需将此文本粘贴到该文件中(并删除任何其他名称服务器):

nameserver 8.8.8.8
nameserver 8.8.4.4

这应该可行,虽然它不是最佳方式,但我会编辑我的答案,以便在您尝试时添加最优雅的方式。

【讨论】:

  • 我很确定这是我遇到的问题 - 我们一直遇到 DNS 问题。
  • 我认为是re​​solv.conf
【解决方案2】:

对我来说,这是通过运行 sudo apt-get install docker-ce docker-ce-cli containerd.io 解决的。我想我错过了一些依赖。

【讨论】:

    【解决方案3】:

    为我解决的问题很简单:

    1. 完全关闭 Docker 桌面。 (右键托盘图标,按Quit Docker Desktop,等待图标消失并显示“WSL已关闭”消息)
    2. 再次启动 Docker Desktop。

    【讨论】:

    • ipconfig /flushdns 为我修复了它。
    【解决方案4】:

    我也犯了同样的错误。你的 docker 主机在防火墙后面吗? 我必须在所有 docker 的域及其443 端口的输出中授权我的 docker 主机。

    这是我需要授权的域:

    • download.docker.com(安装 docker)
    • registry-1.docker.io
    • production.cloudfare.docker.com
    • index.docker.io

    这不是一个详尽的列表,但这解决了问题:

     # docker pull alpine
    Using default tag: latest
    latest: Pulling from library/alpine
    59bf1c3509f3: Pull complete
    Digest: sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300
    Status: Downloaded newer image for alpine:latest
    docker.io/library/alpine:latest
     # 
    

    【讨论】:

      【解决方案5】:

      检查 n/w 配置,

      使用 Google dns 在 /etc/resolve.conf 中添加名称服务器

      域名服务器 8.8.8.8

      域名服务器 8.8.4.4

      【讨论】:

        【解决方案6】:

        这是我的设置:

        $ docker --version
        Docker version 17.11.0-ce, build 1caf76c
        
        $ docker-machine --version
        docker-machine version 0.13.0, build 9ba6da9
        
        $ docker-compose --version
        docker-compose version 1.18.0, build unknown
        
        $ sw_vers
        ProductName:    Mac OS X
        ProductVersion: 10.11.6
        BuildVersion:   15G18013
        

        我已经尝试过了,这在here 中有说明,对我来说效果很好。

        docker-compose.yml:

        version: "3"
        services:
          server:
            build: .
            ports:
              - "5080:5080"
            volumes:
              - npm:/app
            networks:
              - npm
        volumes:
          npm:
        networks:
          npm:
        

        Dockerfile:

        FROM node:6
        WORKDIR /app
        RUN npm install -g local-npm
        CMD ["local-npm"]
        

        另外,这是我的/etc/resolv.conf

        search fios-router.home
        nameserver 192.168.1.1
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-11-27
          • 2023-04-06
          • 1970-01-01
          • 1970-01-01
          • 2021-06-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多