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

ant*_*-fx 5 docker macos

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

我看不出任何原因或任何其他有同样问题的人。

有任何想法吗?

Spe*_*r K 4

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

更新: 您可能会发现(正如我所做的那样)通过 moby debian 主机(如下)所做的更改实际上在重新启动后并不持续存在。然而,我发现 Docker for Mac v1.12.3 现在确实尊重命令--dns的标志run以及dns撰写文件中的属性。如果您使用该--dns标志,则无需使用该标志修改任何resolv.confnameserver ,它将覆盖您的所有条目。

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

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