Heim >Betrieb und Instandhaltung >Docker >So begrenzen Sie die Speichergröße von Docker-Containern
Docker ist heute eine der beliebtesten Containerisierungstechnologien, die es ermöglicht, Anwendungen in eigenständigen Containern auszuführen. Eine wichtige Funktion von Docker besteht darin, dass es die CPU- und Speichernutzung von Containern verwalten und begrenzen kann, was für die Aufrechterhaltung einer hohen Verfügbarkeit und Stabilität von Anwendungen von entscheidender Bedeutung ist. In diesem Artikel konzentrieren wir uns darauf, wie man die Speichergröße von Docker-Containern begrenzt.
1. Verstehen Sie die Speicherverwaltung von Docker
In Docker hat jeder Container seinen eigenen Namespace und seine eigenen Ressourcenbeschränkungen. Ein Container mit einem Speicherlimit kann mit dem folgenden Befehl gestartet werden:
docker run -it --memory 512m --name example_container ubuntu:latest
In diesem Beispiel haben wir einen Container mit dem Namen example_container erstellt und sein Speicherlimit auf 512 MB festgelegt. Der Befehl gibt auch das vom Container verwendete Basis-Image an – ubuntu:latest. Beachten Sie, dass das „-it“-Symbol eine Möglichkeit ist, Docker anzuweisen, die stdin und stdout des Containers an diese Terminalsitzung anzuhängen.
Der obige Befehl kann die aktuelle Speichernutzung des Containers mit dem folgenden Befehl überprüfen:
docker stats example_container
Mit diesem Befehl können Sie die CPU-Auslastung, Speichernutzung, Netzwerkübertragungsrate usw. des Containers in Echtzeit anzeigen.
2. Methoden zur Begrenzung des Containerspeichers
Zusätzlich zu den Befehlszeilenoptionen können Sie bei laufendem Container auch die folgenden Methoden verwenden, um die Speichernutzung des Containers zu begrenzen:
1. Befehl
Mit dem Befehl „Docker Update“ können Sie das Speicherlimit eines laufenden Containers ändern. Der folgende Befehl kann das Speicherlimit von example_container auf 1 GB ändern:
docker update --memory 1g example_container
2. Mit docker-compose
In der Docker Compose-Umgebung können Sie das Schlüsselwort „mem_limit“ verwenden, um das Speicherlimit des Containers festzulegen. Hier ist ein Beispiel einer Container-Konfigurationsdatei, in der der Container den Namen „db“ trägt und sein Speicherlimit auf 512 MB festgelegt ist:
version: '3' services: db: image: mongo:4.4 mem_limit: 512m
In diesem Beispiel haben wir das Mongo:4.4-Image als Basis-Image für den Container verwendet und Nennen Sie es „db“. Im Schlüsselwort „mem_limit“ legen wir das Speicherlimit dieses Containers auf 512 MB fest.
3. So testen Sie das Speicherlimit des Containers
Um zu überprüfen, ob das Speicherlimit des Containers wirksam ist, können wir einige speicherintensive Aufgaben im Container ausführen, beispielsweise den „Matrix“-Test von das Benchmark-Tool stress-ng. Hier ist ein Beispiel, in dem wir den „Matrix“-Test mit mehr Speicher ausführen:
docker exec example_container stress-ng --matrix 1 -t 10s
In diesem Beispiel verwenden wir den Befehl „docker exec“, um den „Matrix“-Test von stress-ng in einem laufenden Container example_container auszuführen. Die Dauer beträgt 10 Sekunden.
Während des Tests können wir die Speichernutzung des Containers mit dem folgenden Befehl beobachten:
docker stats example_container
Normalerweise sollte stress-ng für die angegebene Testdauer viel Speicher verbrauchen. Wenn der Container nur das angegebene Speicherlimit erfolgreich nutzt, sollte dieser Test zu einer Nicht-Speicher-Bedingung führen.
Zusammenfassung
In diesem Artikel haben wir gelernt, wie man die Speichernutzung von Docker-Containern begrenzt. Docker bietet mehrere Möglichkeiten, die Speichernutzung von Containern zu steuern. Um Container stabil und hochverfügbar zu halten, ist es notwendig, die Speichernutzung von Containern zu begrenzen. Durch Experimente und Benchmarks können wir überprüfen, ob Container die angegebenen Speichergrenzen korrekt einhalten.
Das obige ist der detaillierte Inhalt vonSo begrenzen Sie die Speichergröße von Docker-Containern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!