Docker bietet mehrere Netzwerkoptionen, um Container miteinander und mit der Außenwelt zu verbinden. Die drei häufigsten Netzwerktypen sind Bridge, Host und Overlay Netzwerke. In diesem Kapitel werden die verschiedenen Netzwerktypen sowie deren Erstellung und Verwaltung beschrieben.
Bridge-Netzwerke sind die Standardnetzwerke, die Docker erstellt. Sie ermöglichen Containern auf demselben Host, miteinander zu kommunizieren.
Befehl:
docker network create my-bridge-network
Ausgabe:
f2b5e3ac9e1f715e34f6cfb0d1f927b8ed1e8ff79f0c82a70e7c4f8c5f4db8a3
Befehl:
docker run -d --name my-container --network my-bridge-network nginx
Ausgabe:
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
...
Digest: sha256:bf1a7e4a99c78f6d78024a5f8db3d2b4a09c9f6268e8c6b7d1f9820d1f1a34a6
Status: Downloaded newer image for nginx:latest
a3b74fbdcb98b11f823eb6764f5bcd8e92a1d15bde5c6852e47a7bc0a27c3d49
Befehl:
docker network inspect my-bridge-network
Ausgabe:
[
{
"Name": "my-bridge-network",
"Id": "f2b5e3ac9e1f715e34f6cfb0d1f927b8ed1e8ff79f0c82a70e7c4f8c5f4db8a3",
"Created": "2024-07-05T10:20:19.823Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
...
}
]
Host-Netzwerke teilen die Netzwerkumgebung des Hosts mit den Containern. Dies bedeutet, dass der Container direkten Zugriff auf die Netzwerk-Schnittstellen des Hosts hat.
Befehl:
docker run -d --network host nginx
Ausgabe:
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
...
Digest: sha256:bf1a7e4a99c78f6d78024a5f8db3d2b4a09c9f6268e8c6b7d1f9820d1f1a34a6
Status: Downloaded newer image for nginx:latest
a3b74fbdcb98b11f823eb6764f5bcd8e92a1d15bde5c6852e47a7bc0a27c3d49
Befehl:
docker network inspect host
Ausgabe:
[
{
"Name": "host",
"Id": "9deff05f7e63bfa15ff8c4d7b5f4ff6236745d273f8e7efec9c1f127b5f8a3e6",
"Created": "2024-07-05T10:25:24.123Z",
"Scope": "local",
"Driver": "host",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": []
},
...
}
]
Overlay-Netzwerke ermöglichen die Kommunikation zwischen Containern, die auf verschiedenen Hosts laufen. Sie sind besonders nützlich für verteilte Anwendungen und Docker-Swarm-Umgebungen.
Voraussetzung: Ein Docker-Swarm muss initiiert werden.
Befehl zur Initiierung eines Docker-Swarms:
docker swarm init
Befehl zur Erstellung eines Overlay-Netzwerks:
docker network create -d overlay my-overlay-network
Ausgabe:
3b7f8b6a1d2c9e5b3f8c4d8e7a4f5f2c9b6e1d8c9f4f7c2d3a4b5c6f7d8e9f4c
Befehl:
docker service create --name my-service --network my-overlay-network nginx
Ausgabe:
my-service
overall progress: 1 out of 1 tasks
1/1: running
Befehl:
docker network inspect my-overlay-network
Ausgabe:
[
{
"Name": "my-overlay-network",
"Id": "3b7f8b6a1d2c9e5b3f8c4d8e7a4f5f2c9b6e1d8c9f4f7c2d3a4b5c6f7d8e9f4c",
"Created": "2024-07-05T10:30:30.125Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.0.0/24"
}
]
},
...
}
]
Die Verwaltung von Docker-Netzwerken ist entscheidend für den effektiven Einsatz von Containern in verschiedenen Szenarien, sei es auf einem einzelnen Host oder in verteilten Systemen. Durch die Wahl des passenden Netzwerktyps können Sie sicherstellen, dass Ihre Container effizient und sicher kommunizieren.