【发布时间】:2017-11-29 09:12:42
【问题描述】:
我正在关注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/
我不太确定这个错误是什么意思,以及如何解决它。
感谢您的帮助!
【问题讨论】:
-
该错误表示 pip 无法解析 DNS 名称。首先,检查网络是否在 Docker 中工作。运行
docker -it --rm python:2.7-slim /bin/bash,然后尝试运行ping pypi.python.org和ping -n 8.8.8.8。使用 ctrl-D 或exit退出。如果 ping 失败(发布结果),那么您的网络或 DNS 有问题(使用操作系统详细信息和 Docker 版本更新您的问题)。如果它有效,那么,好吧,我想,你遇到了 Docker 或 pip 的一些错误 - 尝试添加--verbose,这样命令将是RUN pip install --verbose -r requirements.txt,也许它会提供一些有用的东西。 -
感谢您的回复。 ping 确实可以正常工作,但是您提到的第一个命令只是给了我错误:'-it' 中 i 的未知速记。使用
--verbose运行时,我得到以下信息:Getting page https://pypi.python.org/simple/flask/ Looking up "https://pypi.python.org/simple/flask/" in the cache No cache entry available -
@drdaeman 提到的第一个命令失败,因为它缺少运行命令。改用这个:
docker run -it --rm python:2.7-slim /bin/bash -
您在构建容器之前是否暂停了您的计算机?在我的笔记本电脑上,docker deamon 在挂起后总是停止名称解析。当我再次唤醒笔记本电脑时,我总是需要重新启动守护程序才能使其恢复工作。
标签: python ubuntu docker pip ubuntu-16.04