Docker 拉错

Docker pull error

我的 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

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

我在执行 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 使用的虚拟机解决了我的问题:

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

我在 OSX 和 Docker 稳定版 v1.13.0 上看到了类似的问题。该问题是间歇性的,在办公室的多台 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 的 Google DNS 服务器解析 DNS 查询。 8.8.

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

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

是的,我解决了我的问题!! "I added a line nameserver 8.8.8.8 into /etc/resolv.conf " 我刚刚评论了这一行 nameserver fe80::1%wlo1

尝试以下命令

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