docker - Divio 应用程序或 CLI "doctor"报告 DNS 故障

标签 docker dns divio

Divio 应用程序在设置本地 Docker 容器时显示错误,因为(根据“divio doctor”)Docker 内部的 DNS 解析不起作用。

我在 W10 主机上设置了 Ubuntu 18.1 VBox VM,用作 Divio 本地开发盒。不过,在主机上运行 Docker 时,DNS 解析从来都不是问题。

我将 "dns": [8.8.8.8] 添加到/etc/docker/daemon.json 以使 DNS 从终端正常工作。

以下命令返回正确答案:

docker run busybox nslookup control.divio.com

Server:     8.8.8.8
Address:    8.8.8.8:53

Non-authoritative answer:
Name:   control.divio.com
Address: 217.150.252.173

有人知道如何解决这个问题吗?

最佳答案

发生的情况是这样的:在容器内执行的用于测试 DNS 解析的命令 ( nslookup control.divio.com ) 有 5 秒超时。

您的命令( docker run busybox nslookup control.divio.com 执行相同的操作 - 但没有超时。

无论出于何种原因,获得响应的时间超过 5 秒,因此第一种情况失败。

尚不完全清楚为什么有时会发生这种情况,没有明显的原因 - DNS 解析不应该花费这么长时间。

不过,您可以通过添加 docker-server-dns 来禁用此测试。至skip_doctor_checks~/.aldryn文件。 See the Divio Cloud documentation for details .


2019 年 1 月 8 日更新

Divio 应用程序已更新(至版本 0.13.1),下次启动时将提供该应用程序,以及 Divio CLI(至版本 3.3.10),如果您在 Divio Shell 之外使用,则可以安装它与 pip install --upgrade divio-cli .

在此更新中,查找工作方式已更改,以减轻执行 DNS 检查时网络问题的影响(现在执行更严格的检查)。

您现在应该能够重新启用已禁用的 docker-server-dns测试在 ~/.aldryn文件。


2019 年 3 月 8 日更新

让事情变得复杂的是,用于运行这些测试的 Busybox 镜像在最近的版本中发生了变化,并且很难确保测试中使用的命令适用于用户碰巧拥有的任何版本的 Busybox。

正在运行docker pull busybox将更新图像,对于许多用户来说这已经解决了问题。一些用户将能够恢复上述失败的测试。

关于docker - Divio 应用程序或 CLI "doctor"报告 DNS 故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54035480/

相关文章:

docker - 从外部容器向 docker 上的 statsd/ Graphite 数据库发送数据时出现问题

docker - docker run和docker pull有什么区别

windows - Windows上的Boot2docker出现 “Permission denied”错误

django - Aldryn 形式的替代品(Django-CMS)

mysql - 管理员 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

javascript - 我可以使用客户端 Javascript 执行 DNS 查找(主机名到 IP 地址)吗?

google-app-engine - 谷歌应用程序的反向代理?

ubuntu - 在 NGINX 中更改域名的最简单方法

ubuntu - Ubuntu Virtualbox 中 Pycharm 中的 Python 控制台无法连接