web-dev-qa-db-ja.com

Docker debian slow dns resolve

ubuntuまたはwgetapt-get、..を使用すると、curl内でDNSの解決が非常に遅くなりました。

root@815340a37f0e:/# time curl www.google.com
...
real    0m5.132s
user    0m0.006s
sys     0m0.003s

nslookupを実行すると、かなり高速になります。

root@815340a37f0e:/# time nslookup google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 173.194.78.101
...
real    0m0.024s
user    0m0.010s
sys     0m0.005s
4
svobol13

同じ問題が発生し、 ハードウェアがIPv6で壊れた動作を示していることがわかりました。

curlで再確認し、次のようにIPv4を強制することができます。

$ time curl -4 www.google.com
...
real    0m0.074s
user    0m0.011s
sys     0m0.000s

更新1:

Windowsホストシステムに問題がありました(Ubuntu 14.04がゲストです)。実際の解決策は このページにあります。

options single-request-reopen/etc/resolvconf/resolv.conf.d/baseに追加し、Sudo resolvconf -hを実行することでうまくいきました。

askubuntu で、ほぼ同じことを示唆する別の回答を見つけました。

3
rene_gr