2017-02-18 5 views
0

Ich habe einen container1 eine service1 auf port1Docker Containerhafen von einem anderen Behälter zugegriffen

auch

Ich habe einen container2 läuft ein service2 auf port2

laufen Wie kann ich service2 zugreifen: port2 von service1 : port1?

Ich erwähne, dass die Container miteinander verbunden sind.

ich fragen, ob es einen Weg gibt, es zu tun, ohne die docker0 IP Zugriff auf (wobei der Port sichtbar ist)

dank

+0

angenommen, dass service2 vor service1 ausgeführt wurde, und als 's2' beim start von service1 verbunden wurde, sollten sie s2: in service1 anrufen können? – hurturk

+0

Hallo @ Zatta! eigentlich ist das nicht möglich –

+0

Darf ich fragen, mit welchem ​​Befehl Sie service1 ausführen? – hurturk

Antwort

2

Die bevorzugte Lösung ist, beide Behälter auf demselben Netzwerk zu platzieren, verwenden Sie die build-in DNS-Erkennung, um den anderen Knoten namentlich zu erreichen, und Sie können auf sie über den Container-Port zugreifen, nicht über den veröffentlichten Host-Port. Von CLI, dass wie folgt aussieht:

docker network create testnet 
docker run -d --net testnet --name web nginx 
docker run -it --rm --net testnet busybox wget -qO - http://web 

Die Busybox eine Probe Client-Container an den nginx Behälter verbindet zeigt mit dem Namen Web, über Port 80. Beachten Sie, dass dieser Port nicht von erreichbar sein, veröffentlicht werden mussten andere Behälter.

Das Einrichten von Multi-Container-Umgebungen mit einem eigenen Netzwerk ist eine häufige Aufgabe für docker-compose. Daher würde ich empfehlen, dieses Tool zu betrachten, wenn Sie sich dabei häufig befinden.

Verwandte Themen