使Docker容器的DNS服务器成为另一个运行DNSmasq的Docker容器

时间:2019-11-13 21:36:41

标签: docker docker-compose dnsmasq

我有一组使用docker compose创建的docker容器,它创建了一个“用户定义的”桥接网络。

其中一个docker容器正在运行DNSmasq,因此我们可以定义自定义(内部)域名以指向本地IP。

问题是,其他Docker容器都无法解析这些域名。我认为问题是我无法让docker DNS将其请求转发到运行DNSmasq的docker容器(即,甚至不知道它存在)。

作为测试,我做了一个docker network inspect <network created by docker compose>,并记下了DNSmasq容器的IP地址。然后,在另一个容器的/etc/resolv.conf中,将nameserver设置为该IP地址。然后,我可以解析所有这些内部域名。

可悲的是,尽管用户定义的网络启用了自动服务发现功能,但是将dnsmasq放置在其中还是行不通的。

然后看来,完成这项工作的一种方法是强制我的DNSmasq容器始终具有相同的IP,然后确保其他docker容器将其指向它们的名称服务器,例如由defining the network explicitly in the compose file

还有别的办法吗?我只想知道一个容器的IP地址,而不必定义整个网络来复制此自动创建的网络。

0 个答案:

没有答案