如何告诉部署到群集中的随机机器上的Docker容器在自己的主机上使用DNS?

考虑以下configuration:

// Create a swarm cluster docker-machine create -d virtualbox --swarm --swarm-master node1 docker-machine create -d virtualbox --swarm node2 // Setup shell environment to talk to the swarm cluster eval $(docker-machine env --swarm node1) // Run a DNS server on each swarm machine docker run -d -p "172.17.0.1:53:53" --env "constraint:node==node1" my-dns-server-image docker run -d -p "172.17.0.1:53:53" --env "constraint:node==node2" my-dns-server-image // Run a custom service, deployed to a random node in the swarm docker run -d my-custom-service 

如何告诉我的自定义服务使用在自己的主机上运行的DNS服务器?

我知道可以传递给--dns参数,但问题是我不知道容器将被部署到哪个主机,因此我不知道(A)主机IP或(B)在--dns docker run被调用的时候,该主机上网桥的网关IP,因此看起来好像我不能利用--dns参数。

我知道我可以修改my-custom-service图像来执行一些shell命令来获取它的网关,并在运行时添加一行到/etc/resolv.conf,但我想这样做,而不必修改my-custom-service图像。 不过,我修改my-dns-server-image是完全可以接受的。