我不明白我得到的输出。
如果我运行:docker run --rm busybox nslookup google.com
,我会得到:
Server: 192.168.65.1
Address: 192.168.65.1:53
Non-authoritative answer:
Name: google.com
Address: 2a00:1450:4009:806::200e
*** Can't find google.com: No answer
... 有时-有时它会包含相同的结果,只是有所不同:
Address: 216.58.198.174
我不明白:
Can't find google.com
。如果我直接在计算机上运行nslookup google.com
,则输出始终为:
Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
Name: google.com
Address: 216.58.208.142
Can't find google.com: No answer
的意义是什么?为什么nslookup在Docker容器中运行时似乎随机给出不同的结果?
答案 0 :(得分:3)
我今天也有这个错误。据我所知,可能是nslookup中的1.29+版本的busybox附带的回归。它与nslookup处理从查询中获得的响应的方式有关。有时,AAAA记录在A记录之前返回,而在其他时候则相反。不幸的是,该版本的nslookup只能抢先出现并显示它。因此,在您的情况下,如果对“ google.com”进行查询,那么如果AAAA记录排在第一位,则得到2a00:1450:4009:806 :: 200e,而当A记录到达那里时,您得到216.58.198.174。 / p>
如果指定-type=a
或-type=aaaa
,则行为会更加一致,并且不会显示错误消息。
$ docker run --rm busybox nslookup -type=aaaa example.com
Server: 208.67.222.222
Address: 208.67.222.222:53
Non-authoritative answer:
Name: example.com
Address: 2606:2800:220:1:248:1893:25c8:1946
另一个建议是恢复到busybox 1.28。
docker run --rm busybox:1.28 nslookup example.com
要了解更多信息,请访问:https://github.com/docker-library/busybox/issues/48和https://bugs.busybox.net/show_bug.cgi?id=11161#c4。