当前位置: 首页>>技术教程>>正文


python – Docker名称解析[Errno -3]暂时失败

, , , ,

问题描述

我正在关注docker tutorial,而我必须使用以下内容来构建应用程序:

docker build -t friendlyhello .

到达第4步,在暂停后出现此错误:

Step 4/7 : RUN pip install -r requirements.txt
 ---> Running in 7f4635a7510a
Collecting Flask (from -r requirements.txt (line 1))

Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after 
connection broken by
'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection 
object at 0x7fe3984d9b10>: Failed to establish a new connection: 
[Errno -3] Temporary failure in name resolution',)': /simple/flask/

我不太确定此错误的含义以及如何解决该错误。

谢谢你的帮助!

最佳方案

我在Ubuntu 16.04和Docker版本17.09.0-ce中遇到了相同的问题。我认为禁用dns掩码不是正确的解决方案。

这是我解决的方法:

对于Ubuntu

编辑/etc /default /docker并将您的DNS服务器添加到以下行:

示例
DOCKER_OPTS="--dns 8.8.8.8 --dns 10.252.252.252"

参考:Docker – Network calls fail during image build on corporate network

次佳方案

这篇文章对我也有用!

Solved by dns mask [sic] disable:

sudo vim /etc/NetworkManager/NetworkManager.conf

comment out dns=dnsmasq -> #dns=dnsmasq

sudo service network-manager restart (or reboot VM in this case)

来自:https://github.com/moby/moby/issues/26330

第三种方案

我只是做了sudo service docker restart,但之后就奏效了。在修改配置之前绝对值得一试。

第四种方案

这很傻,但是当我收到此错误消息时,我已连接了VPN。

断开VPN连接后,PIP重新开始工作。

第五种方案

我在docker-ce 17的Ubuntu 16.04.1计算机上遇到了相同的问题,它通过禁用网络中的dns掩码来解决。

sudo nano /etc/NetworkManager/NetworkManager.conf 

按Ctrl + O保存并输入退出Ctrl + X

通过运行bellow命令重新启动网络服务。

sudo service network-manager restart

之后,如果您运行docker build命令,一切将正常运行。

第六种方案

bkasap的答案改变了我想说的系统功能。此外,因为Docker中有执行此操作的选项。做到这一点的新方法是

$ sudo vi /etc/docker/daemon.json

并添加以下内容

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

别忘了

sudo service docker restart

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8309.html,未经允许,请勿转载。