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.
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
Hallo @ Zatta! eigentlich ist das nicht möglich –
Darf ich fragen, mit welchem Befehl Sie service1 ausführen? – hurturk