Divio应用程序或CLI“医生”报告DNS故障

时间:2019-01-04 08:35:06

标签: docker dns divio

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

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

我在/etc/docker/daemon.json中添加了“ dns”:[8.8.8.8],以使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

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

1 个答案:

答案 0 :(得分:2)

这是怎么回事:在容器内部执行以测试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 App已更新(版本为0.13.1),下次启动时将为您提供该软件;如果您在Divio Shell之外使用,则可以安装Divio CLI(版本3.3.10)。与pip install --upgrade divio-cli

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

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


更新2019年3月8日

复杂的是,事实证明,用于运行这些测试的Busybox映像在最新版本中已更改,并且很难确保测试中使用的命令可以与用户碰巧拥有的任何Busybox版本一起使用。

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