lookup registry-1.docker.io:没有这样的主机

Tal*_*sar 13 ubuntu docker

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

我的服务器细节:

没有LSB模块可用.经销商ID: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'.
Run Code Online (Sandbox Code Playgroud)

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

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

Tar*_*ani 17

您还需要使用环境变量为Docker守护程序设置代理.由于图像不存在,Docker运行也在做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
Run Code Online (Sandbox Code Playgroud)

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

然后执行以下命令重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)

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


小智 13

我遇到了这个错误,并且能够通过简单的重新启动来解决:

sudo service docker restart
Run Code Online (Sandbox Code Playgroud)

  • 给我解决了。在 wsl2 上使用 Ubuntu 20.04 (3认同)

Kat*_*tie 5

您可以尝试的事情:

a)添加名称服务器8.8.8.8

方法1

docker-machine ssh default
sudo vi /etc/resolv.conf
//change nameserver to 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

然后使用重新启动服务器

service docker restart
Run Code Online (Sandbox Code Playgroud)

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

方法#2

编辑/etc/docker/daemon.json使用以下信息在首选项面板中提供JSON配置”

{ "dns" : [ "8.8.8.8", "8.8.4.4" ]}
Run Code Online (Sandbox Code Playgroud)

然后使用重新启动服务器

service docker restart
Run Code Online (Sandbox Code Playgroud)

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'
Run Code Online (Sandbox Code Playgroud)

然后使用重新启动服务器

service docker restart
Run Code Online (Sandbox Code Playgroud)

方法#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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后在下方添加具有代理设置的内容(将https更改为“ HTTPS”)

    [Service]
    Environment="HTTP_PROXY=http://<allowed_proxy_ipv4_address>:<proxy_port_num>/"
    [Service]
    
    Run Code Online (Sandbox Code Playgroud)
  3. sudo systemctl daemon-reload

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

c)重新安装Docker

不幸的是,不得已而为之。查看这些github页面以获取更多建议:

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


小智 5

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

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

在此处输入图片说明

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

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

在此处输入图片说明

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

在此处输入图片说明

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


not*_*vvy 5

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

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

docker logout
docker login
Run Code Online (Sandbox Code Playgroud)

我不知道为什么。


归档时间:

查看次数:

20174 次

最近记录:

6 年,6 月 前