Container mit initialen Ressourcenlimits erstellen
In diesem Schritt lernen Sie, wie Sie einen Docker-Container erstellen und initiale Ressourcenlimits für CPU und Arbeitsspeicher festlegen. Ressourcenlimits sind wichtig, um zu verhindern, dass ein einzelner Container alle verfügbaren Ressourcen des Host-Systems verbraucht, was die Performance anderer Container und des Hosts selbst beeinträchtigen könnte.
Zuerst laden wir das ubuntu
-Image von Docker Hub. Dieses Image wird als Basis für unseren Container dienen.
docker pull ubuntu:latest
Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen und extrahiert wird.
Nun erstellen wir einen Container namens my-limited-container
mit spezifischen Ressourcenlimits. Wir verwenden dazu den docker run
-Befehl mit den Flags --cpus
und --memory
.
Das --cpus
-Flag begrenzt die CPU-Ressourcen, die der Container nutzen kann. Der Wert ist eine Gleitkommazahl, die die Anzahl der CPU-Kerne angibt. Beispielsweise bedeutet --cpus 0.5
, dass der Container maximal die Hälfte eines CPU-Kerns nutzen darf.
Das --memory
-Flag begrenzt den Arbeitsspeicher, den der Container verwenden kann. Der Wert kann in Bytes, Kilobytes (k), Megabytes (m) oder Gigabytes (g) angegeben werden. Zum Beispiel limitiert --memory 512m
den Container auf 512 Megabyte Arbeitsspeicher.
In diesem Beispiel erstellen wir einen Container, der den Befehl sleep infinity
ausführt, wodurch der Container unbegrenzt läuft. Wir beschränken seine CPU-Nutzung auf 0,5 Kerne und den Arbeitsspeicher auf 256 Megabyte.
docker run -d --name my-limited-container --cpus 0.5 --memory 256m ubuntu:latest sleep infinity
Lassen Sie uns den Befehl aufschlüsseln:
docker run
: Dieser Befehl erstellt und startet einen neuen Container.
-d
: Dieses Flag führt den Container im Detached-Modus aus, d.h. er läuft im Hintergrund.
--name my-limited-container
: Weist dem Container den Namen my-limited-container
zu.
--cpus 0.5
: Begrenzt die CPU-Nutzung auf 0,5 Kerne.
--memory 256m
: Begrenzt den Arbeitsspeicher auf 256 Megabyte.
ubuntu:latest
: Spezifiziert das zu verwendende Docker-Image (die neueste Ubuntu-Version).
sleep infinity
: Dies ist der Befehl, der im Container ausgeführt wird. Er hält den Container aktiv.
Nach Ausführung des Befehls gibt Docker die Container-ID aus.
Um zu überprüfen, ob der Container läuft und die Ressourcenlimits angewendet wurden, können Sie den docker inspect
-Befehl verwenden. Dieser Befehl liefert detaillierte Informationen über einen Container.
docker inspect my-limited-container
Die Ausgabe von docker inspect
ist ein umfangreiches JSON-Objekt. Sie können im Abschnitt HostConfig
nach den Feldern CpuShares
und Memory
suchen, um die gesetzten Limits zu sehen. Beachten Sie, dass --cpus 0.5
in einen CpuShares
-Wert von 512 übersetzt wird (standardmäßig entspricht 1 CPU 1024 Shares). Der Memory
-Wert wird in Bytes angegeben.