Docker容器只能被其他人访问

我有一个elasticsearch容器,必须可以通过我的nodejs应用程序访问,但我不希望我的第一个容器可以被我的nodejs应用程序的任何其他容器访问。

我已经设置了从nodejs应用程序到我的elasticsearch容器的链接,但是我没有find任何选项来禁用任何其他连接。

什么是实现它的最好方法?

您可以创build一个仅由您的elasticsearch容器和您需要的特定客户端共享的专用networking。 您也可以创build第二个networking,使您的nodejs应用程序与其他容器通信。

避免使用链接。 如果您正在定义像下面这样的自己的networking

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应用可以使用url http://elasticsearch:9200来引用elasticsearch。