【问题标题】:lookup registry-1.docker.io: no such host查找 registry-1.docker.io:没有这样的主机
【发布时间】:2017-09-04 11:35:10
【问题描述】:

我的 Ubuntu 16.4 服务器上运行着 docker 守护进程

我的服务器详情:

没有可用的 LSB 模块。经销商编号:Ubuntu 说明:Ubuntu 17.04 版本:17.04 代号:zesty

我收到以下错误:

aa@aaa-VirtualBox:/etc/default$ docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host.
See 'docker run --help'.

我已经设置了 http_proxy 和 https_proxy 因为我在公司代理/防火墙后面

有什么线索可以解决这个问题吗?

【问题讨论】:

  • curl ipinfo.io 这对你有用吗?
  • @TarunLalwani 是的,我收到了回复
  • 您是否也为 docker daemon config 设置了代理?还是只使用导出变量?
  • 我在这里发布了相同的答案stackoverflow.com/a/67856225/2067697

标签: ubuntu docker


【解决方案1】:

您还需要使用环境变量为 Docker 守护程序设置代理。 Docker run 也在做 docker pull 因为镜像不存在。在您的情况下,代理仅应用于 docker run 命令,该命令委托给在没有代理的情况下运行的 docker 守护进程。

创建一个名为/etc/systemd/system/docker.service.d/10_docker_proxy.conf 的文件,内容如下

[Service]
Environment=HTTP_PROXY=http://1.1.1.1:111
Environment=HTTPS_PROXY=http://1.1.1.1:111

确保根据您拥有的代理更新代理 1.1.1.1:111 只是一个示例

然后执行以下命令重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

现在使用你的 docker run 命令,它应该可以工作了

【讨论】:

  • 终于可以了,但不确定为什么这个解决方案 (docs.docker.com/network/proxy) 不起作用。
  • @Tarun Lalwani,你能在这里看看我的问题吗:stackoverflow.com/questions/57792954/…。我不知道我的 Windows PC 上 docker.service.d 的完整路径。谢谢。
  • 在我的例子中,docker 工作正常,但突然出现了这个错误。使用sudo systemctl restart docker 进行简单重启即可修复它。
【解决方案2】:

你可以尝试的事情:

a) 添加域名服务器 8.8.8.8

方法#1

docker-machine ssh default
sudo vi /etc/resolv.conf
//change nameserver to 8.8.8.8

然后使用

重启服务器
service docker restart

注意:如果您没有安装 docker-machine,您可以按照说明here 进行安装。它随 Windows 和 Mac 一起提供,但可以在 Linux 上手动安装。

方法#2

Edit /etc/docker/daemon.json"provide a JSON configuration in the preference panel" 带有以下信息:

{ "dns" : [ "8.8.8.8", "8.8.4.4" ]}

然后使用

重启服务器
service docker restart

b) 设置代理

方法#1

按照 Tarun Lalwani 的建议编辑您的代理配置。

编辑/etc/default/docker 并添加:

export http_proxy='http://username:password@proxy-host:proxy-port'
export https_proxy='https://username:password@proxy-host:proxy-port'

然后使用

重启服务器
service docker restart

方法#2

来源:https://github.com/moby/moby/issues/32270#issuecomment-340709035

  1. 为 docker 服务创建一个 systemd 插入目录:

    mkdir -p /etc/systemd/system/docker.service.d
    # For HTTP Proxy:
    vim /etc/systemd/system/docker.service.d/http-proxy.conf
    # For HTTPS Proxy:
    vim /etc/systemd/system/docker.service.d/https-proxy.conf
    
  2. 然后在下面添加带有代理设置的内容(将 https 更改为“HTTPS”)

    [Service]
    Environment="HTTP_PROXY=http://<allowed_proxy_ipv4_address>:<proxy_port_num>/"
    [Service]
    
  3. sudo systemctl daemon-reload

  4. sudo systemctl restart docker
  5. 验证配置是否已加载:systemctl show --property=Environment docker

c) 重新安装 Docker

不幸的是,最后的手段可以奏效。查看这些 github 页面以获取更多建议:

对我来说,使用 systemctl 方法设置代理是唯一有效的方法。

【讨论】:

  • 我有 Windows 7 和两个物理接口(其中一个没有互联网访问权限),方法 1a 在这种情况下有效。
  • /etc/resolv.conf 使用名称服务器 8.8.8.8 然后 dockerd restart
【解决方案3】:

我遇到了这个错误,通过简单的重启就能解决:

sudo service docker restart

【讨论】:

  • 已解决。在 wsl2 上使用 Ubuntu 20.04
【解决方案4】:

我通过 8.8.8.8 - Ubuntu 18.04.3 LTS 解决了更改 DNS 服务器的错误

1- 打开 Ubuntu 系统设置并导航到网络

2- 单击您连接的列表中网络名称旁边的设置按钮。

3- 新窗口将打开许多选项卡,其中一个带有“IPv4”标签。

4- 打开“IPv4”选项卡后,您会发现“DNS”字段。这里可以写DNS服务器

如果您想使用多个 DNS,则可以输入并用逗号分隔它们。

【讨论】:

    【解决方案5】:

    转到 Docker 设置 -> 代理 -> 手动代理配置

    在输入中设置代理详细信息并应用。

    重新启动泊坞窗。这将解决问题。

    【讨论】:

      【解决方案6】:

      如果您在 Windows 中遇到此问题,简化的详细解决方案如下: 右键单击网络 开放网络和互联网设置 在高级网络设置中,单击更改适配器选项 右键单击您的网络或 wifi 连接 点击属性 在网络选项卡中单击 Internet 协议版本 4 (TCP/IPv4) 或 ipv6 一般情况下,点击使用以下DNS服务器地址并在首选DNS服务器上添加8.8.8.8

      【讨论】:

        【解决方案7】:

        我尝试了上述许多答案,但都无济于事。

        最后,这种方法对我有用:

        docker logout
        docker login
        

        我不知道为什么。

        【讨论】:

          【解决方案8】:

          将 Docker 配置为开机启动

          sudo systemctl enable docker
          

          【讨论】:

            【解决方案9】:

            对于要访问资源的窗口 - 网络并将 DNS 更改为 8.8.8.8 就可以了。还要确保在更改后重新启动。

            【讨论】:

              猜你喜欢
              • 2021-05-12
              • 2022-07-03
              • 2018-08-02
              • 2019-02-14
              • 2020-07-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多