Docker组合两个项目之间的网络隔离问题?

时间:2017-11-26 19:16:06

标签: docker docker-compose docker-networking

我在我的一个系统上遇到了一个与docker-compose有关的奇怪问题。

我有两个TICK(Telegraf,InfluxDB,Chronograf,Kapacitor)docker-compose" projects"在同一台机器上。使用以下docker-compose.yml

由于两个服务都在同一个NGINX SSL实例后面代理,因此它们都加入了一个共同的nginx_proxy外部网络。

问题是,一旦我启动第二个撰写堆栈。不知怎的,第一个堆栈开始行为不端:来自第一个通过influxdb主机名定位到Influxdb服务的chronograf intance的一些(如20%)请求以某种方式被重定向到第二个堆栈的涌入实例。

据我所知,由于它们位于同一个nginx网络上,因此可以进行通信,但是如何强制第一个实例始终以自己的服务为目标,而不是交叉编写?试图指定链接,但它不起作用。

我可以设置任何配置来实现这种隔离而无需重命名我的所有服务吗?

1 个答案:

答案 0 :(得分:0)

我不希望嵌入式DNS服务器自动执行您想要的操作,因为它对我来说似乎不明确(docker-compose文件不表达您在此处用自然语言表达的内容,这非常精细且不含糊)。事实上,我甚至感到惊讶它允许它运行(似乎是在容器上进行循环,这可以解释为什么只有一些请求被错误路由)。

要回答你的问题,我会简单地使用非模棱两可的aliases或只是非模糊的服务名称,尽管可能还有其他解决方案。