Docker nslookup可以工作,但wget不行

2vuwiymt  于 2023-06-22  发布在  Docker
关注(0)|答案(1)|浏览(166)

我有以下设置:

  • myhost1.mycompany -> www.example.com的带有A条目的dns服务器10.10.10.1
  • 安装了docker daemon(20.10.5)的服务器myhost 2(debian 11)和正在运行的容器mycontainer 1
  • 在myhost 2上,专用dns服务器在/etc/resolv.conf中配置,并搜索mycompany

在myhost 2上:

  • nslookup myhost1 -> 10.10.10.1
  • ping myhost1 -> works
  • wget myhost1 -> wokrs
  • wget google.com->作品

在mycontainer 1上:

  • nslookup myhost1 -> 10.10.10.1
  • ping myhost1 -> bad address
  • wget myhost1 -> bad address
  • wget google.com->作品
  • cat /etc/resolv.conf ->与myhost 2上的cat /etc/resolv.conf相同的输出

所以这不是(我猜)DNS问题,因为nslookup查询在容器中工作正常,但我不明白为什么其他应用程序(如ping或wget)无法获得解析的IP。
感谢分享您的想法!

xzabzqsa

xzabzqsa1#

该行为可能是由/etc/resolv.conf中的选项ndots:0导致的,该选项阻止ping添加默认本地域。
在这种情况下,ping myhost1.mydomain.lan应该可以工作,而ping myhost1不应该(wget也是如此)。
所以我建议你可以尝试将其更改为ndots:5
例如:

nameserver 127.0.0.11
options ndots:5

相关问题