我安排了几个集装箱的码头作业。其中一个容器是运行bind的dns服务器。在我的docker守护进程配置中,我指定了如下所示的dns:
"dns" : [
"10.1.1.8", /* static ip address of my dockerized bind container defined in compose */
"x.x.x.x", /* my companies internal vpn dns */
"8.8.8.8" /* google dns */
]一切都很好。撰写文件中的容器将使用运行在10.1.1.8上的绑定服务器进行dns查找,然后返回到我的公司内部dns,最后谷歌dns以查找外部网站。
Docker提供了一个特殊的dns host.docker.internal,它应该指向主机IP (假设您希望码头容器连接到本地运行的服务,而不是在码头上运行)。我想在一些容器中使用这一点,这些容器应该允许容器引用主机IP地址,而不需要硬编码可以更改的IP。实际上,docker将此值插入主机操作系统上的主机文件(windows/ system 32/driver/etc/ host ),并在为主机IP分配新的dns时对其进行更新。
问题是docker使用dns来解决"host.docker.internal“问题。当在守护进程中使用我的自定义dns配置时,它会破坏一些东西,并且我在到达主机os服务时会遇到问题。我花了2个小时调试这个问题,直到我意识到只有当我从守护进程配置中删除dns配置时,host.docker.internal才开始工作。是否有任何方法使停靠者正确解析dns,并仍然使用自定义dns绑定服务器在同一台计算机上?我是否可以以某种方式更新守护进程dns,使其也指向某个停靠dns ip地址?
发布于 2022-08-28 12:23:30
您是否考虑过依赖Docker编写,以及它如何帮助定义自定义的DNS寻址策略。
我向您提供到撰写DNS配置官方指南的链接。
https://stackoverflow.com/questions/73518493
复制相似问题