Fügen Sie einen Netzwerkmodus in Docker Compose hinzu
- Sammeln Sie Netzwerkinformationen in Docker
- Konfigurieren Sie den Netzwerkmodus in Docker Compose
- Konfigurieren Sie den Netzwerkmodus in Docker Swarm
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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn