Docker for Mac 中的 HTTP / HTTPS 连接非常慢

Docker for Mac 中的 HTTP / HTTPS 连接非常慢

我正在使用 Docker for Mac v 1.12.3,我遇到的问题是 HTTP 和 HTTPS 连接非常慢。DNS 和 Ping 看起来没问题,但 HTTP(S) 在 docker 镜像上需要 5 秒,而在主机上则需要 0.05 秒:

Host (MacOS Sierra):
time curl www.google.com
0.05 real 
0.00 user 
0.00 sys

Docker:
time curl www.google.com
real 0m5.615s
user 0m0.010s
sys 0m0.000s

我看不出这个问题或其他任何人遇到同样问题的原因。

有任何想法吗?

答案1

我注意到/etc/resolv.conf有 10 个不同的名称服务器条目(类似于 192.168.65.1)。在任何一个条目之前添加 Google 的 DNS 可以消除所有延迟。

更新: 您可能会发现(就像我一样),通过 moby debian 主机(见下文)进行的更改实际上不会在重新启动后持续存在。然而,我发现 Docker for Mac v1.12.3 现在既尊重命令--dns的标志run,也尊重dnsCompose 文件中的属性。如果您使用该--dns标志,则无需修改任何解析配置文件使用该标志,它将nameserver为您覆盖所有条目。

进一步挖掘后发现,我需要登录莫比图像来修改默认值。您可以通过查看您构建的任何图像的 resolv.conf 来确认这一点。如果它们没有已知 DNS,那么您需要按照此处的说明进行操作:

https://github.com/docker/docker/issues/24344#issuecomment-239942428

相关内容