2015-09-23 4 views
6

Gemäß docker link docs kann ich nur - einen Link zu einem (bereits laufenden) Container herstellen, um auf interne Ports dieses Containers zuzugreifen.docker Netzwerkverbindung zu 2 oder mehreren Containern

Wie kann ich einen Container mit zwei oder mehr anderen Containern verknüpfen? (MongoDB und andere Web-Service in meinem Fall.)

(Gerade jetzt ich Häfen zweiten Behälters am aussetzt Zugriff auf Host und dann über Host: Port, auch mögliche Abhilfe könnte Let two Containers getting linked to eachother sein.)

+1

https://stackoverflow.com/questions/30545023/how-to-communicate-between-docker-containers-via-hostname/30550990#30550990 – xuhdev

+2

Ich denke, man mehrmals verwenden --link verlinken zu können zu mehreren Containern. Ich habe das selbe oft benutzt. –

Antwort

2

Alternativ Sie Sie können die Kommunikation zwischen Containern aktivieren, indem Sie der Befehlszeile des Andock-Daemons -icc = true hinzufügen. Sie müssen die Container nicht verknüpfen, sondern nur mit der IP-Adresse des Docker-Hosts und den veröffentlichten Ports der Container zugreifen.

Docker Networking

14
docker run -d --link node1:node1 --link node2:node2 --link node3:node3 -p hostport:containerport your-image 

ich den Befehl über und es funktioniert.

+1

Dies sollte eine akzeptierte Antwort sein –

1

Für eine einfache Lösung können Sie Docker-compose verwenden. In Ihrer Datei (docker-compose.yml) verwenden Sie die Option links Link zu Containern in einem anderen Dienst. Geben Sie entweder den Dienstnamen und einen Verbindungsaliasnamen (SERVICE: ALIAS) oder nur den Dienstnamen an.

container_name: 
links: 
     - node1 
     - node2 
     - node3:alias3 
     - noden