Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使docker容器的DNS服务器成为另一个运行DNSmasq的docker容器_Docker_Docker Compose_Dnsmasq - Fatal编程技术网

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

使docker容器的DNS服务器成为另一个运行DNSmasq的docker容器,docker,docker-compose,dnsmasq,Docker,Docker Compose,Dnsmasq,我用docker compose创建了一组docker容器,它创建了一个“用户定义”的桥接网络 其中一个docker容器正在运行,因此我们可以定义指向本地IP的自定义(内部)域名 问题是,其他docker容器都无法解析这些域名。我认为问题在于我无法让docker DNS将其请求转发到运行DNSmasq的docker容器(即,它甚至不知道它存在) 作为测试,我对docker网络进行了检查,并记录了DNSmasq容器的IP地址。然后,在另一个容器的/etc/resolv.conf中,我将namese

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

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

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

作为测试,我对docker网络进行了
检查
,并记录了DNSmasq容器的IP地址。然后,在另一个容器的
/etc/resolv.conf
中,我将
nameserver
设置为该IP地址。然后我可以解析所有这些内部域名

遗憾的是,尽管用户定义的网络已经启用了自动服务发现功能,但将
dnsmasq
放入其中并不起作用

这样做的一种方法似乎是强制我的DNSmasq容器始终具有相同的IP,然后确保其他docker容器将该IP作为其名称服务器,例如通过

没有别的办法吗?当我只想知道一个容器的IP地址时,我宁愿不必定义整个网络来复制这个自动创建的网络