【问题标题】:Cannot download Docker image from repository无法从存储库下载 Docker 映像
【发布时间】:2015-03-05 17:54:19
【问题描述】:

我正在尝试在我的笔记本电脑上创建一个集群设置。我在笔记本电脑上运行 swarm 守护进程,并运行 2 个 Ubuntu 14.04 VM 作为 docker 节点。在其中一个节点上,我可以运行 swarm,并且可以连接到 swarm 守护进程。我可以使用 docker info 列出节点并在其上生成一个容器。但是当我尝试在另一个 VM 节点上拉取 swarm 映像时,我收到以下错误:

pensu@pensu-virtual-machine:~$ sudo docker pull swarm
Pulling repository swarm
FATA[0025] Get https://index.docker.io/v1/repositories/library/swarm/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: read udp 127.0.1.1:53: i/o timeout 

我查了一下,有人说这是代理问题。但我没有使用任何代理服务器。以下是其他相关信息:

pensu@pensu-virtual-machine:~$ sudo docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

这是我的 /etc/default/docker:

pensu@pensu-virtual-machine:~$ cat /etc/default/docker 
# Docker Upstart and SysVinit configuration file

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"

知道我做错了什么吗?

更新: 这是不同的东西。我正在家里尝试这一切。今天早上我来到办公室,登录并瞧,我能够拉出图像!

不知道是什么原因,但看来我需要到办公室拉取 docker 镜像!

【问题讨论】:

标签: docker ubuntu-14.04 dockerhub


【解决方案1】:

只需停止并重新启动您的 docker 主机:

boot2docker stop
boot2docker start

致:https://forums.docker.com/t/pulling-docker-images-i-o-timeout/740/6

【讨论】:

    【解决方案2】:

    为现代更新:

    docker-machine stop default
    docker-machine start default
    

    docker-machine restart default 没有修复它)。

    【讨论】:

    • 2016 年年中重新启动为我修复了它
    【解决方案3】:

    这个错误信息:

    • 在 127.0.1.1:53 上查找 index.docker.io:读取 udp 127.0.1.1:53:i/o 超时

    告知与本地 dns 服务器 (127.0.1.1:53) 的连接以超时结束。

    我猜这个问题与虚拟机上的网络/dns 配置有关。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,我的解决方案是运行以​​下命令。

      boot2docker stop 
      boot2docker delete
      boot2docker init
      boot2docker up
      

      这基本上删除了 boot2docker 使用的 vm 映像并重新开始。这不会删除您的本地图像。然后执行 docker pull 命令。

      【讨论】:

        【解决方案5】:

        我尝试了所有所述的解决方案,但都没有帮助。为我解决问题的是here 发布的提示,

        docker-machine sssh
        echo "nameserver 8.8.8.8" > /etc/resolv.conf
        exit
        

        【讨论】:

        • 当 docker-machine 启动时,它将路由器的解析名称服务器写入/etc/resolv.conf。如果您随后在不重新启动 docker-machine 的情况下切换网络(例如在家庭和办公室之间),它将使用 DM 启动的网络中的解析名称服务器。此解决方案比启动/停止更快。下一步我们重新配置我的家庭网络以使用公共名称服务器。上面的命令应该是docker-machine ssh
        【解决方案6】:

        当我遇到这种情况时,原来该图像之前已经下载过,但由于早期下载时出现问题而导致缺陷。

        我不知道为什么会导致上述错误消息,但是删除图像后,它下载没有问题。

        所以要修复它:

        docker image ls
        

        记下问题图片的id,然后

        docker image rm <id>
        

        然后重新下载

        docker pull <image-name>
        

        【讨论】:

          猜你喜欢
          • 2016-06-24
          • 2021-01-05
          • 1970-01-01
          • 2023-03-07
          • 2018-01-05
          • 2020-06-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多