Einen laufenden Container an ein Netzwerk anschließen
In diesem Schritt lernen Sie, wie Sie einen laufenden Docker-Container an ein bestehendes Netzwerk anschließen können. Dies ist nützlich, wenn Sie einen Container haben, der bereits läuft und der mit anderen Containern oder Diensten in einem bestimmten Netzwerk kommunizieren muss.
Zunächst erstellen wir ein neues Netzwerk, das wir für diese Demonstration verwenden werden. Wir werden ein Bridge-Netzwerk namens my-network
erstellen.
docker network create my-network
Sie sollten eine Ausgabe ähnlich dieser sehen, die darauf hinweist, dass das Netzwerk erfolgreich erstellt wurde:
<network_id>
Jetzt lassen wir einen einfachen Container laufen, der zunächst nicht mit my-network
verbunden ist. Wir werden einen alpine
-Container im detached-Modus (-d
) ausführen und ihn my-container
nennen.
docker run -d --name my-container alpine sleep infinity
Die Ausgabe wird die Container-ID sein:
<container_id>
Um zu überprüfen, dass der Container läuft und nicht mit my-network
verbunden ist, können Sie die Netzwerkeinstellungen des Containers überprüfen.
docker inspect my-container --format '{{json .NetworkSettings.Networks}}'
Die Ausgabe zeigt das Standard-Bridge-Netzwerk, aber nicht my-network
:
{
"bridge": {
"IPAMData": null,
"IPAddress": "<ip_address>",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "<mac_address>",
"DriverOpts": null
}
}
Jetzt verbinden wir den laufenden my-container
mit dem my-network
mithilfe des Befehls docker network connect
.
docker network connect my-network my-container
Es wird keine Ausgabe angezeigt, wenn der Befehl erfolgreich ist.
Um zu überprüfen, dass der Container jetzt mit my-network
verbunden ist, überprüfen Sie erneut die Netzwerkeinstellungen des Containers.
docker inspect my-container --format '{{json .NetworkSettings.Networks}}'
Diesmal sollte die Ausgabe sowohl das Standard-Bridge-Netzwerk als auch my-network
anzeigen:
{
"bridge": {
"IPAMData": null,
"IPAddress": "<ip_address>",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "<mac_address>",
"DriverOpts": null
},
"my-network": {
"IPAMData": null,
"IPAddress": "<ip_address>",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "<mac_address>",
"DriverOpts": null
}
}
Abschließend bereinigen wir den Container und das Netzwerk, das wir erstellt haben.
docker stop my-container
docker rm my-container
docker network rm my-network