[DOCKER] À propos de la communication entre les conteneurs

Aperçu

Le conteneur défini dans docker-compose.yml est placé sous le même réseau. Les conteneurs peuvent accéder les uns aux autres par ce nom.

/var/www/container1# ping container2
64 bytes from ...réduction

docker-compose.yml Je souhaite accéder aux conteneurs 1 et 2 à de tels moments.

docker-compose.yml


version: "3"

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

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

Pourquoi

Un serveur DNS du réseau est debout et résout les noms. Normalement, l'adresse IP locale de la machine hôte n'est pas accessible depuis le conteneur, mais le serveur DNS résout le nom avec le port attribué à chaque conteneur ✨ (Vous pouvez voir le serveur DNS en cours d'exécution avec la commande dig)

prime

Comment résoudre les noms en écrivant l'adresse IP et le domaine directement dans les hôtes du conteneur. Étant donné que l'adresse IP de la machine hôte change dynamiquement avec ip4 et ip6 en fonction du paramètre wifi, l'environnement de développement peut ne pas fonctionner involontairement.

docker-compose.yml


# ports:
#    - "8080:80"
extra_hosts:
      - "localhost-dev:${Adresse IP de la machine hôte}"

Recommended Posts

À propos de la communication entre les conteneurs
[K8s] J'ai essayé la communication entre les pods!
À propos =
À propos de la différence entre irb et pry