【问题标题】:Unable to find image 'hello-world:latest' locally无法在本地找到图像“hello-world:latest”
【发布时间】:2021-08-24 15:46:14
【问题描述】:

我已经按照 ubuntu 的官方安装步骤在我的机器上安装了 docker。在验证步骤中它失败了。

当我运行命令时: docker run hello-world 它会抛出以下错误消息:

Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry- 
1.docker.io/v2/: net/http: request canceled while waiting for 
connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.  

以下是我机器的 docker 详细信息。

Client: Docker Engine - Community
Version:           19.03.6
API version:       1.40
Go version:        go1.12.16
Git commit:        369ce74a3c
Built:             Thu Feb 13 01:27:49 2020
OS/Arch:           linux/amd64
Experimental:      false
Got permission denied while trying to connect to the Docker daemon socket at 
unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix 
/var/run/docker.sock: connect: permission denied

如果我尝试获取 docker info,则会收到以下消息:

客户: 调试模式:假

服务器: 错误:尝试在 unix:///var/run/docker.sock 连接到 Docker 守护程序套接字时获得权限被拒绝:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info:拨打 unix /var/run/docker.sock:连接:权限被拒绝 错误漂亮的打印信息

【问题讨论】:

  • 您当前的用户不在docker 组中,因此没有与docker daemon 通信的必要权限 => sudo usermod -a -G docker yourUserName
  • 在 Ubuntu 20.4 上,系统重启解决了这个问题,我能够看到输出。

标签: docker


【解决方案1】:

你可以用这种方式简单地拉取并测试它:

$ sudo docker pull hello-world
$ sudo docker run hello-world

【讨论】:

    【解决方案2】:

    首先检查docker是否正在使用

    sudo 服务码头工人状态

    如果它正在运行,那么您可能错过了将您的用户添加到 docker 组。要确认这一点,请使用 sudo

    尝试 docker 命令

    如果您不想每次都使用 sudo,请按照以下指南将您的用户添加到 docker 组

    Step 2 — Executing the Docker Command Without Sudo (Optional)

    注意:您不能在 WSL 中运行 Docker,即 Windows 上的 Ubuntu,因此您需要安装 docker for windows,以下指南提供了在 WSL 中使用 Docker 的完整步骤。

    Setting Up Docker for Windows and WSL to Work Flawlessly

    【讨论】:

      【解决方案3】:

      docker 的安装后步骤可能没有执行。基本上,当前登录使用的需要添加到docker 组。

      只需按照 docker 文档中的说明进行操作 - https://docs.docker.com/engine/install/linux-postinstall/

      FYA-组成员资格评估只会在 ubuntu 重新启动后进行(在 18.04 中)。因此,按照上述链接后,重新启动 ubuntu 机器。然后尝试docker images 并且报告的权限问题应该得到解决。

      【讨论】:

        【解决方案4】:

        当我将我的 ubuntu 19.04 升级到 19.10 然后重新安装它时,这个问题已经解决了。

        【讨论】:

          【解决方案5】:

          我在尝试修复以下错误时遇到了类似的问题,

          root@neno88:/home/mohan# docker run hello-world 找不到镜像 'hello-world:latest' 本地 docker:来自守护进程的错误响应:获取 https://registry-1.docker.io/v2/: 拨号 tcp: 查找 10.187.215.112:53 上的 registry-1.docker.io:读取 udp 10.187.215.103:58777->10.187.215.112:53:读取:连接被拒绝。

          所以,错误是由于我的企业设置中的代理,守护程序请求通过代理被拒绝

          错误地尝试修复它,(导致上述错误。) 我已将 registry-1.docker.io ip 添加到 /etc/hosts,但它导致了与此处的 StackOverflow 类似的错误。

          root@neno88:/home/mohan# docker run hello-world 找不到镜像 'hello-world:latest' 本地 docker:来自守护进程的错误响应:获取 https://registry-1.docker.io/v2/: net/http: 请求被取消而 等待连接(Client.Timeout 超过了等待 标题)。请参阅“docker run --help”。 root@neno88:/home/mohan#

          正确的步骤: 如何解决它,

          1. 只需将您的代理详细信息添加到 /etc/systemd/system/docker.service.d/proxy.conf (文件夹 docker.service.d 可能不存在,因此请先创建目录)
          2. 使用以下命令添加代理详细信息检查后,守护程序是否成功查看/读取您的环境变量。

          $ sudo systemctl daemon-reload

          $ sudo systemctl restart docker

          $ systemctl show --property=环境泊坞窗

          参考此文档:https://www.serverlab.ca/tutorials/containers/docker/how-to-set-the-proxy-for-docker-on-ubuntu/

          【讨论】:

            猜你喜欢
            • 2018-04-18
            • 2016-08-04
            • 1970-01-01
            • 2018-09-04
            • 2016-09-07
            • 2021-09-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多