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/