web-dev-qa-db-de.com

So weisen Sie dem Docker-Container mehr Speicher zu

Wie der Titel schon sagt, versuche ich meinem Container mehr Speicher zuzuweisen. Ich verwende ein Bild vom Docker-Hub mit dem Namen "aallam/Tomcat-mysql", falls dies relevant ist.

Wenn ich es normalerweise ohne spezielle Flags starte, gibt es ein Speicherlimit von 2 GB (obwohl ich gelesen habe, dass der Speicher unbegrenzt ist, wenn er nicht gesetzt ist)

Hier sind meine Docker-Statistiken

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
ba57d6c9e9d2        0.22%               145.6 MiB / 1.952 GiB   7.29%               508 B / 508 B       0 B / 6.91 MB       68

Ich habe versucht, den Speicher explizit so einzustellen, aber mit den gleichen Ergebnissen

docker run -d --memory=10g --memory-swap=-1 -e MYSQL_PASSWORD=password -p 3307:3306 -p 8081:8080 aallam/Tomcat-mysql

Ich habe gelesen, dass vielleicht die VM das einschränkt. Aber warum zeigen Docker-Statistiken dann, dass die maximale Containergröße 2 GB beträgt?

69
kane

Das 2GB Die angezeigte Grenze ist der Gesamtspeicher des VM, in dem Docker ausgeführt wird.

Wenn Sie Docker-for-Windows oder Docker-for-Mac verwenden, können Sie es leicht vom Wal aus erhöhen ???? Symbol in der Taskleiste, dann gehen Sie zu Einstellungen -> Erweitert:

Docker Preferences

Wenn Sie jedoch VirtualBox behind verwenden, öffnen Sie VirtualBox. Wählen Sie den dem Docker-Computer zugewiesenen Speicher aus und konfigurieren Sie ihn.

Siehe dies für Mac:

https://docs.docker.com/docker-for-mac/#memory

SPEICHER Standardmäßig verwendet Docker für Mac 2 GB Laufzeitspeicher, der dem auf Ihrem Mac verfügbaren Gesamtspeicher entspricht. Sie können RAM in der App erhöhen, um eine schnellere Leistung zu erzielen, indem Sie diese Zahl höher (z. B. auf 3) oder niedriger (auf 1) einstellen, wenn Docker für Mac weniger Arbeitsspeicher verwenden soll.

Für Windows:

https://docs.docker.com/docker-for-windows/#advanced

Arbeitsspeicher - Ändern Sie den Arbeitsspeicher, den Docker für Windows Linux VM verwendet

136
Robert

Wenn Sie den Standardcontainer ändern möchten und Virtualbox verwenden, können Sie dies über die Befehlszeile/CLI tun:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start
12

Weisen Sie Ihrem Docker-Computer maximalen Speicher zu von (Docker-Voreinstellung -> Erweitert) Screenshot der erweiterten Einstellungen. . Dadurch wird das maximale Limit für den Docker-Verbrauch beim Ausführen von Containern festgelegt. Führen Sie nun Ihr Bild in einem neuen Container mit der Markierung -m = 4g für 4 GB RAM oder mehr aus. z.B.

docker run -m=4g {imageID}

Denken Sie daran, die Änderungen der RAM-Grenzwerterhöhung anzuwenden. Starten Sie den Docker neu und überprüfen Sie, ob das RAM-Limit erhöht wurde. Dies kann einer der Faktoren sein, bei denen die RAM-Grenze in Docker-Containern nicht erhöht wird.

5
Market Queue