【问题标题】:Docker pull errorDocker 拉取错误
【发布时间】:2015-02-03 14:20:51
【问题描述】:

我的 Docker 有问题。当我运行 docker pull 命令时,出现致命错误。

运行docker pull golang

获取Pulling repository golang FATA[0000] Get https://index.docker.io/v1/repositories/library/golang/images: dial tcp: lookup index.docker.io on [192.168.3.50]:53: server misbehaving

发生了这个问题,即使我尝试拉取不同的图像。

我该如何解决这个问题?
我的 docker 版本是 1.4.1

【问题讨论】:

  • GET 结果中的 IP 看起来像本地 IP。您确定没有代理或 DNS 策略阻止您访问此地址吗?
  • 是的,问题出在 DNS 中...我在 /etc/resolv.conf 中添加了一行 nameserver 8.8.8.8,这解决了我的问题。谢谢..
  • [192.168.3.50]:53: server misbehaving 是 DNS 响应,供记录

标签: docker pull


【解决方案1】:

我在做docker build . 的时候遇到了这个问题,并且得到了

Error while pulling image: 
Get https://index.docker.io/v1/repositories/library/debian/images: 
dial tcp: lookup index.docker.io on 75.75.76.76:53: server misbehaving

Error while pulling image: 
Get https://index.docker.io/v1/repositories/library/debian/images: 
dial tcp: lookup index.docker.io: no such host

重启 docker 使用的 vm 解决了我的问题:

docker-machine restart default && eval "$(docker-machine env default)"

【讨论】:

  • 为我工作,但也仅在 regenerate-certs 之后。我怀疑这是因为我在启动 docker-machine 时位于不同的网络上。
  • 面临同样的问题。我在一个网络上启动了 docker vm,并在另一个网络上尝试了 docker pull。重启解决了这个问题。
  • 谢谢!解决了我的问题。
  • 同样的问题,但使用 Docker For Mac Beta,所以重新生成证书或重新映射 docker-machine 对我来说不是一个选项:(
  • 这也解决了我的问题,记录在这里github.com/apocas/dockerode/issues/247
【解决方案2】:

您的 DNS 服务器无法查找 docker-register 域 (index.docker.io)。请重新检查本地 DNS 服务器中的 DNS 记录或将其替换为公共服务器,例如 8.8.8.8

【讨论】:

  • 如果在proxy后面,需要设置HTTP_PROXY和HTTPS_PROXY
  • 如果在 VPN 后面尝试禁用 VPN
【解决方案3】:

我在 Docker stable v1.13.0 的 OSX 上看到了类似的问题。该问题是间歇性的,并出现在办公室的多台 OSX 笔记本电脑上。当问题出现时,这是错误消息:

error pulling image configuration: 
Get https://prod-ap-southeast-2-starport-layer-bucket.s3-REGION.amazonaws.com/XXX: 
dial tcp: lookup prod-REGION-starport-layer-bucket.s3-ap-southeast-2.amazonaws.com on 192.168.xxx.xxx:53: 
no such host

我们已经能够通过运行以下命令可靠地修复它:

docker run --rm -v /etc/resolv.conf:/rtemp debian:8 bash -c 'echo "nameserver 8.8.8.8" > /rtemp'

请注意,每次启动 docker 客户端时都需要运行此命令。该命令正在更改 docker 引擎 DNS 设置以停止通过 docker 客户端进行代理(因此使用您的主机 DNS 设置),而是通过位于 8.8.8.8 的 Google DNS 服务器解析 DNS 查询。

我认为根本原因是亚马逊 URL 的 DNS 响应的负载大小发生了变化,当它大于 512 字节时,Docker 客户端 DNS 代理无法处理响应。

我相信在这个开放的 docker 问题中讨论了根本原因,但不能确定:https://github.com/docker/docker/issues/18842

【讨论】:

    【解决方案4】:

    试试下面的命令

        $ docker-machine ssh
        $ sudo su
        $ echo "nameserver 8.8.8.8" > /etc/resolv.conf
    

    【讨论】:

      【解决方案5】:

      是的,我解决了我的问题!! “我在/etc/resolv.conf 中添加了一行nameserver 8.8.8.8” 我刚刚评论了这一行nameserver fe80::1%wlo1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-01
        • 2018-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-16
        相关资源
        最近更新 更多