如何解决docker pull中的i / o超时错误

时间:2017-12-31 11:49:05

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

尝试命令时:

docker pull alpine

我收到以下错误

  

错误拉图像配置:获取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:拨打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可以解决这个问题。

4 个答案:

答案 0 :(得分:0)

正如评论中所讨论的那样,您尝试ping主机dseasb33srnrn.cloudfront.net并且它没有响应(它响应我的ping),这意味着问题出在您的系统DNS设置中,而不是{{1 }}:

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

Docker

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

答案 1 :(得分:0)

对我来说,这是通过运行DataFrame解决的。我想我缺少一些依赖了。

答案 2 :(得分:-1)

检查n / w配置,

使用Google dns

在/etc/resolve.conf中添加名称服务器

nameserver 8.8.8.8

nameserver 8.8.4.4

答案 3 :(得分:-1)

这是我的设置:

$ 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