Docker容器只能由另一个访问

时间:2016-09-12 09:49:08

标签: docker docker-compose

我有一个弹性搜索容器,我的nodejs应用程序必须可以访问它,但我不希望我的nodejs app可以访问我的第一个容器。

我已经设置了一个从nodejs app到我的elasticsearch容器的链接,但是我没有找到任何禁用任何其他连接的选项。

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

1 个答案:

答案 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。