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

The Divio app or CLI "doctor" reports a DNS failure

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 从终端运行。

以下命令returns正确答案:

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 解析不应花费这么长时间。

不过,您可以通过在 ~/.aldryn 文件中将 docker-server-dns 添加到 skip_doctor_checks 来禁用此测试。 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 检查时网络问题的影响(它现在进行更严格的检查)。

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


2019 年 3 月 8 日更新

更复杂的是,用于 运行 这些测试的 Busybox 图像在最近的版本中发生了变化,很难确保测试中使用的命令适用于任何版本的 Busybox用户恰好有。

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