Fügen Sie einen Netzwerkmodus in Docker Compose hinzu

  1. Sammeln Sie Netzwerkinformationen in Docker
  2. Konfigurieren Sie den Netzwerkmodus in Docker Compose
  3. Konfigurieren Sie den Netzwerkmodus in Docker Swarm
Fügen Sie einen Netzwerkmodus in Docker Compose hinzu

Standardmäßig wird ein einzelnes Netzwerk von Docker Compose in unseren Anwendungen erstellt und jeder Container dort als Dienst hinzugefügt. Jeder Container im Netzwerk kann von Containern in einem einzigen Netzwerk aufgerufen und gefunden werden.

Wir können unsere Netzwerke konfigurieren, indem wir in Docker Compose einen Netzwerkmodus definieren. In diesem Artikel wird erläutert, wie wir unser Netzwerk mithilfe des Netzwerkmodus in Docker Compose definieren und einrichten können.

Sammeln Sie Netzwerkinformationen in Docker

Wenn wir einen Netzwerkmodus konfigurieren möchten, der einen bestimmten Container oder Dienst durchläuft, müssen wir zuerst zusätzliche Informationen sammeln. Mit dem Befehl docker network ls können wir unsere aktuellen Docker-Netzwerke auflisten.

Es sollte ähnlich aussehen wie die folgende Ausgabe unten.

Ausgang:

NETWORK ID          NAME                         DRIVER
17cc61428fef        bridge                       bridge
098522f7fce0        sample_default               bridge
1ce3c472afc6        test_default                 bridge
8fd07e456e6c        host                         host
3b5787919641        none                         null

Dieser Befehl ist praktisch, wenn wir den Namen oder die ID unseres Containers, Dienstes oder Netzwerks über den vorherigen oben dargestellten Befehl kennen müssen.

Konfigurieren Sie den Netzwerkmodus in Docker Compose

In Docker Compose Version 3 können wir den Netzwerkmodus in unserer YAML-Datei verwenden, indem wir den Parameter network_mode: und seinen Wert angeben. Stellen Sie daher sicher, dass Sie die von uns verwendete Docker-Compose-Version mit dem Parameter version: und dem Wert 3 oder 3.0 angeben.

Beispiel:

version: "3"
services:
  app:
    network_mode: "host"

Im obigen Beispiel haben wir das Beispiel host als unseren Netzwerkmodus verwendet, aber wir können stattdessen einen Container oder einen Dienst angeben. Aus der offiziellen Docker-Dokumentation sind hier die mehreren Werte, die wir verwenden können, wenn wir den Netzwerkmodus des Dienstes definieren:

Beispiel:

network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

Da wir zuvor Informationen gesammelt haben, können wir den Netzwerknamen oder die ID verwenden, wenn wir unseren Netzwerkmodus definieren.

Beispiel:

network_mode: "container:sample_default"
network_mode: "container:1ce3c472afc6"

Konfigurieren Sie den Netzwerkmodus in Docker Swarm

Eine Sammlung physischer oder virtueller Maschinen, auf denen die Docker-Anwendung ausgeführt wird, wird als Docker-Schwarm bezeichnet. Mit einer Container-Orchestrierungslösung namens Docker Swarm können Benutzer viele Container steuern, die über verschiedene Host-Computer verteilt sind.

Sobald eine Gruppe von Maschinen geclustert wurde, können wir immer noch die Docker-Befehle ausführen, an die wir gewöhnt sind, aber die Geräte in unserem Cluster werden sie jetzt ausführen.

Leider passen Docker Compose und Swarm nicht gut zusammen. Anstatt also den Parameter network_mode zu verwenden, müssen wir das Netzwerk manuell mit dem Parameter networks definieren, der so aussehen sollte.

Beispiel:

version: "3.0"
services:
    app:
        networks:
            - host

networks:
    host:
        name: [Your Network Mode Value]
        external: true
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - Docker Compose