2016-09-12 4 views
0

Ich habe einen Elasticsearch-Container, auf den meine Nodejs-Anwendung zugreifen muss, aber ich möchte nicht, dass mein erster Container von irgendetwas anderem, das meine Nodejs-App ist, zugänglich ist.Docker-Container nur durch einen anderen zugänglich

Ich habe einen Link von der Nodejs-App zu meinem elasticsearch Container gesetzt, aber ich habe keine Option gefunden, um irgendeine andere Verbindung zu deaktivieren.

Was ist der beste Weg, um es zu erreichen?

Antwort

2

Sie können ein privates Netzwerk erstellen, das nur von Ihrem elasticsearch-Container und den von Ihnen gewünschten Clients gemeinsam genutzt wird. Sie können auch ein zweites Netzwerk erstellen, über das Ihre NodeJs-App mit anderen Containern kommunizieren kann.

Vermeiden Sie die Verwendung von Links. Sie gelten als Legacy, wenn Sie Ihre eigenen Netzwerke wie unten definieren.

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 

In diesem Docker-compose.yml Beispiel können Sie Ihre NodeJS App Elasticsearch beziehen sich die URL http://elasticsearch:9200 verwenden.

Verwandte Themen