在这美好的 2017 年初向大家致以问候
我有一个使用 docker-compose 构建的“微服务”应用程序,并由 docker Swarm 在 Azure 容器服务云上进行编排。Azure 上的 Docker 版本是 1.12.5。
我已经建立了一个站点到站点的 VPN,以允许一些应用程序将自己与我们所在位置托管的一些服务器连接起来。VPN 连接就像一个魅力。我可以从 Azure 云中的虚拟机 ping 私有 DNS 和其他服务器。令人讨厌的是,docker-compose 没有处理其他 DNS 服务器的定义。在我的 docker compose 中,我定义了私有 DNS 的 IP 和 Google 公共 DNS 的两个 IP:
version: '2'
services:
myApp:
build: something
dns:
- X.X.X.X
- 8.8.8.8
- 8.8.4.4
正如您所怀疑的那样,这不起作用。myApp 的 /etc/resolv.conf 不包含这些 IP。
我尝试使用这种命令运行 myApp:
docker run myAppContainer –dns X.X.X.X …
通过这种方式,myApp 容器可以根据需要使用我们的私有 DNS。
我看到很多帖子通过在主机(/etc/default/docker)上编辑docker的默认值给出了一个简单的解决方案。但是通过我在 Azure 中的设置,我无法更改托管 Swarm 代理的虚拟机中的任何内容。
所以,我真的需要你的帮助。