我有一个弹性搜索容器,我的nodejs应用程序必须可以访问它,但我不希望我的nodejs app可以访问我的第一个容器。
我已经设置了一个从nodejs app到我的elasticsearch容器的链接,但是我没有找到任何禁用任何其他连接的选项。
实现它的最佳方法是什么?
答案 0 :(得分:2)
您可以创建仅由您的elasticsearch容器和所需的特定客户端共享的专用网络。您还可以创建第二个网络,允许您的nodejs应用程序与其他容器进行通信。
避免使用链接。如果您正在定义自己的网络,则会将其视为遗产。
version: "2"
networks:
backend:
driver: bridge
esprivate:
driver: bridge
services:
elasticsearch:
image: elasticsearch:2.3.3
networks:
- esprivate:
expose:
- "9200"
- "9300"
nodejs:
networks:
- esprivate
- backend
other_service:
networks:
- backend
在这个docker-compose.yml示例中,您的nodejs app可以使用url http://elasticsearch:9200
引用elasticsearch。