首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker DNS忽略主机上的/etc/nsswitch.conf

Docker DNS忽略主机上的/etc/nsswitch.conf
EN

Stack Overflow用户
提问于 2020-11-24 00:03:47
回答 1查看 455关注 0票数 1

我有一个添加libvirt-nss/etc/nsswitch.conf文件,以便在主机和来宾计算机上自动解析vm主机名。然后,我有一个运行在主机上的nginx容器(带有--network host),它将流量路由到主机上的一些服务,并将其余流量路由到虚拟机。然而,nginx容器无法解析虚拟机的主机名,我怀疑docker引擎(?)不尊重主机的/etc/nsswitch.conf来解析域名。有没有办法让它工作,或者我不走运?

EN

回答 1

Stack Overflow用户

发布于 2020-11-24 03:28:30

正如@DavidMaze指出的那样,这是设计出来的。有几种方法可以实现你似乎想要做的事情。

您可以向容器中添加nsswitch.conf文件。这在阿尔卑斯山是可行的。将其复制到Dockerfile中或使用绑定挂载:

代码语言:javascript
复制
$ docker run --rm -v /etc/nsswitch.conf:/etc/nsswitch.conf --add-host foobar.dns:8.8.8.8 busybox ping foobar.dns
PING foobar.dns (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=113 time=7.796 ms
64 bytes from 8.8.8.8: seq=1 ttl=113 time=7.809 ms

然后,您可以使用docker --add-host向容器的hostfile添加主机名。或者,也可以绑定主机的hosts文件:

代码语言:javascript
复制
$ docker run --rm -v /etc/nsswitch.conf:/etc/nsswitch.conf -v /etc/hosts:/etc/hosts busybox ping foobar.dns
PING foobar.dns (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=113 time=16.961 ms
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64971915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档