[DOCKER] Über die Kommunikation zwischen Containern

Überblick

Der in docker-compose.yml definierte Container befindet sich unter demselben Netzwerk. Container können unter diesem Namen aufeinander zugreifen.

/var/www/container1# ping container2
64 bytes from ...Kürzung

docker-compose.yml Ich möchte zu solchen Zeiten auf die Container 1 und 2 zugreifen.

docker-compose.yml


version: "3"

services:
  container1:
    build:
      context: ./docker/container1
    ports:
      - "3000:3000"

  container2:
    build:
      context: ./docker/container2
    ports:
      - "8080:80"

Warum

Ein DNS-Server im Netzwerk steht und löst Namen auf. Normalerweise kann vom Container aus nicht auf die lokale IP des Host-Computers zugegriffen werden, aber der DNS-Server löst den Namen mit dem jedem Container zugewiesenen Port auf ✨ (Sie können sehen, dass der DNS-Server mit dem Befehl dig ausgeführt wird.)

Bonus

So lösen Sie Namen auf, indem Sie IP und Domain direkt in Hosts im Container schreiben. Da sich die IP-Adresse des Host-Computers je nach WLAN-Einstellung dynamisch mit IP4 und IP6 ändert, funktioniert die Entwicklungsumgebung möglicherweise nicht unbeabsichtigt.

docker-compose.yml


# ports:
#    - "8080:80"
extra_hosts:
      - "localhost-dev:${IP-Adresse des Host-Computers}"

Recommended Posts

Über die Kommunikation zwischen Containern
[K8s] Ich habe versucht, zwischen Pods zu kommunizieren!
Über =
Über den Unterschied zwischen irb und pry