2.1 Grundbefehle von docker network
Netzwerke in Docker ermöglichen es Containern, miteinander und mit externen Netzwerken zu interagieren. Die docker network
-Befehle bieten flexible Optionen zur Erstellung, Konfiguration und Verwaltung von Netzwerken, sodass Isolierung und Kontrolle über die Netzwerkinteraktionen von Containern gewährleistet werden. In dieser Vorlesung betrachten wir die docker network
-Befehle und deren Verwendung zur Netzwerkverwaltung im Detail.
Die wichtigsten docker network
-Befehle:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
Netzwerk erstellen: Befehl docker network create
Der Befehl docker network create
wird verwendet, um neue Netzwerke zu erstellen. Du kannst Netzwerke mit verschiedenen Treibern erstellen, wie z. B. bridge
, host
, overlay
und macvlan
.
Beispiel für die Erstellung eines Netzwerks mit dem Treiber bridge
docker network create --driver bridge my_bridge_network
Beispiel für die Erstellung eines Netzwerks mit dem Treiber overlay
docker network create --driver overlay my_overlay_network
Beispiel für die Erstellung eines Netzwerks mit dem Treiber macvlan
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 Netzwerkbefehle
1. Verfügbare Netzwerke anzeigen: Befehl docker network ls
Der Befehl docker network ls
zeigt eine Liste aller in Docker erstellten Netzwerke an.
docker network ls
Die Ausgabe des Befehls sieht folgendermaßen aus:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. Informationen zu einem Netzwerk anzeigen: Befehl docker network inspect
Der Befehl docker network inspect
liefert detaillierte Informationen zu einem bestimmten Netzwerk, einschließlich angeschlossener Container, Subnetz- und Gateway-Einstellungen.
Beispiel:
docker network inspect my_bridge_network
Die Ausgabe des Befehls enthält die Informationen über das Netzwerk im JSON-Format:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. Container mit einem Netzwerk verbinden: Befehl docker network connect
Der Befehl docker network connect
wird verwendet, um einen bereits gestarteten Container mit einem bestehenden Netzwerk zu verbinden.
Beispiel:
docker network connect my_bridge_network my_container
4. Container von einem Netzwerk trennen: Befehl docker network disconnect
Der Befehl docker network disconnect
wird verwendet, um einen Container von einem Netzwerk zu trennen.
Beispiel:
docker network disconnect my_bridge_network my_container
5. Netzwerk löschen: Befehl docker network rm
Der Befehl docker network rm
wird verwendet, um ein Netzwerk zu löschen. Beachte, dass ein Netzwerk erst gelöscht werden kann, nachdem alle daran angeschlossenen Container getrennt wurden.
Beispiel:
docker network rm my_bridge_network
2.3 Beispiele für docker network
Befehle
Beispiele für die Verwendung von docker network
Befehlen
Beispiel 1: Erstellung und Nutzung eines bridge
-Netzwerks
Netzwerk erstellen:
docker network create --driver bridge my_bridge_network
Container starten und sie mit dem Netzwerk verbinden:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Netzwerk überprüfen:
docker network inspect my_bridge_network
Die Ausgabe des docker network inspect
-Befehls enthält detaillierte Informationen über das Netzwerk im JSON-Format. Um die Ausgabe lesbarer zu machen, kann man das Tool jq
verwenden:
docker network inspect my_bridge_network | jq
Das ist nützlich, um Daten über das Netzwerk wie verbundene Container, deren IP-Adressen und Subnetz-Einstellungen gefiltert und strukturiert anzusehen.
Beispiel 2: Verbinden und Trennen von Containern
Container starten:
docker run -d --name my_container nginx
Container mit Netzwerk verbinden:
docker network connect my_bridge_network my_container
Container vom Netzwerk trennen:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION