web-dev-qa-db-fra.com

Comment rejoindre le réseau de passerelle par défaut avec docker-compose v2?

J'ai essayé de configurer un conteneur nginx-proxy pour accéder à mes autres conteneurs via des sous-domaines sur le port 80 au lieu de ports spéciaux. Comme vous pouvez le deviner, je ne pouvais pas le faire fonctionner.

Je suis un peu nouveau au docker lui-même et j'ai trouvé que c'était plus confortable pour moi d'écrire docker-compose.yml fichiers pour que je n’aie pas à écrire constamment docker run ... commandes. Je pensais qu'il n'y avait aucune différence dans la manière de démarrer les conteneurs, que ce soit avec docker ou docker-compose. Cependant, une différence que j’ai remarquée est que démarrer le conteneur avec docker ne crée pas de nouveaux réseaux, mais avec docker-compose il y aura un xxx_default réseau ensuite.

J'ai lu que les conteneurs sur différents réseaux ne peuvent pas accéder les uns aux autres et peut-être que cela pourrait être la raison pour laquelle le proxy nginx ne transfère pas les demandes aux autres conteneurs. Cependant, je n’ai pas trouvé de moyen de configurer mon docker-compose.yml fichier pour ne pas créer de nouveaux réseaux, mais rejoindre le réseau de pont par défaut comme docker run Est-ce que.

J'ai essayé ce qui suit, mais il en est résulté une erreur disant que je ne peux pas rejoindre les réseaux du système comme ceci:

networks:
  default:
    external:
      name: bridge

J'ai aussi essayé network_mode: bridge, mais cela n'a pas semblé faire la différence.

Comment dois-je écrire le docker-compose.yml fichier pour ne pas créer de nouveau réseau, ou est-ce impossible?

Question bonus: y at-il d’autres différences entre docker et docker-compose que je devrais savoir?

27
noone

Ajouter network_mode: bridge à chaque service de votre docker-compose.yml arrêtera de composer pour créer un réseau.

Si aucun service n'est configuré avec ce pont (ou hôte), un réseau sera créé.

Testé et confirmé avec:

version: "2.1"

services:
  app:
    image: ubuntu:latest
    network_mode: bridge
61
Rawkode