So erhöhen Sie den Docker-Machine-Speicher Mac


108

Ich bin neu in Docker und versuche, dieses Tutorial zum Einrichten von MemSQL über ein Docker-Image durchzugehen - http://docs.memsql.com/4.0/setup/docker/ . Ich bin auf einem Mac und das Tutorial verwendet, boot2dockerwas veraltet zu sein scheint.

Die VM benötigt 4 GB Speicher, um ausgeführt zu werden. Das Tutorial gibt an, wie das geht, boot2dockeraber ich kann mit der Docker-Maschine / Docker-Toolbox keinen Weg finden, dies zu tun.

Hier ist der Befehl, den ich verwende, und der Fehler, den ich erhalte, wenn ich nur versuche, das Tutorial durchzugehen, ohne die boot2docker-Konfiguration zu ändern.

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.

Antworten:


111

Wenn Sie eine Docker-Maschine erstellen, können Sie die Speichergröße angeben:

docker-machine create -d virtualbox --virtualbox-memory 4096 default

Lassen Sie mich wissen, ob das hilft.


Dies scheint definitiv der richtige Ort zu sein, um die Speicherzuordnung anzupassen. Nach dem Neustart dieser VM wird jedoch immer noch der gleiche Fehler angezeigt. Im check-systemProgramm ( github.com/memsql/memsql-docker-quickstart/blob/master/… ) sehe ich diese Zeilen, die diesen Fehler bestimmen würden. ONE_MB = 1024 ** 2, virtual_memory = psutil.virtual_memory(), if virtual_memory.total < ONE_MB * 3700: sys.stderr.write("Error: MemSQL requires at least 4 GB of memory to run.\n").
DJElbow

2
Konnte dies nicht durch Ändern der Konfiguration zum Laufen bringen, aber das Löschen und Neuerstellen der Docker-Maschine vm wie oben gezeigt löste das Problem!
DJElbow

Klar, ich putze den zweiten Weg, anscheinend funktioniert es nicht mehr.
BMW

178

Sie können dies über die Befehlszeile tun. So ändern Sie beispielsweise den Computer vom Standardlauf mit 1 CPU / 2048 MB RAM:

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

Sie können dann Ihre Einstellungen überprüfen:

VBoxManage showvminfo default | grep Memory
VBoxManage showvminfo default | grep CPU

Und für docker-machine inspectden richtigen Stand der Dinge zu berichten, zu bearbeiten , ~/.docker/machine/machines/default/config.jsonum die Änderungen zu reflektieren.


1
Dies funktionierte auch dann, wenn die GUI (Version 5.0.16) dies nicht tun würde.
MikeF

6
Diese Antwort sollte oben sein
Nakajuice

5
Beachten Sie, dass nach Ausführung des Befehls docker-machine inspectkeine Änderungen angezeigt werden. Wenn Sie jedoch ausführen, werden docker statsSie feststellen, dass die Änderungen übernommen wurden.
Slovit

@slovit und andere: Sie können dann die Docker-Maschinendatei so ändern config.json, dass sie der tatsächlichen Größe entspricht. Beispiel: defaultÄndern Sie für , wie in der Beispiellösung verwendet, die ~/.docker/machine/machines/default/config.jsonDatei so, dass die Memory(und CPUfalls auch geänderte) Untereigenschaft unter Driverin geändert wird 4096. Dann docker-machine inspectwird der richtige Wert angezeigt.
ScriptAutomate

79

Für Docker Version 1.12.1 (Build: 12133) und höher unter MacOS besteht die Möglichkeit, CPUs und RAM über die Benutzeroberfläche zu ändern und Docker neu zu starten. Sie finden die Einstellungen in der Symbolleiste. Anhängen von Bildern zur besseren Übersicht.

Schritte: Einstellungen -> Erweitert -> Ressourcen anpassen -> Übernehmen und neu starten

https://www.dropbox.com/s/znltd1v4r00nfpu/Screenshot%202017-03-24%2012.12.58.png?dl=0

Docker erweiterte Registerkarte (Speicher)


3
Dies wurde auf die Registerkarte Erweitert verschoben. Vielen Dank für das Teilen.
GabLeRoux

Mann, das war sowohl offensichtlich als auch völlig unintuitiv - danke!
AlienWebguy

Gilt diese Änderung auch, wenn ich ein Beiboot mit virtualbox verwende? Oder sollte ich nur VBoxManage verwenden, um die Memgröße anzupassen?
Artur79

2
Gibt es eine entsprechende Befehlszeile? Ich habe Docker für Mac, aber anscheinend gibt mir Docker-Maschine nichts, so dass ich die Standardmaschine nicht ändern kann.
Andrea Bergonzo

42

Docker Machine Maintainer hier. Ich denke nicht, das anzupassenconfig.json manuelle funktionieren wird.

Sie haben zwei Möglichkeiten, entweder die Maschine mit zu erstellen --virtualbox-memory Set oder den Speicher der VM in der VirtualBox-GUI anzupassen ("Einstellungen> System" für diese VM, glaube ich). Stellen Sie sicher, dass die Maschine ausgeschaltet ist und ein kleiner Schieberegler vorhanden sein sollte.

BEARBEITEN: Eine andere Antwort zeigt, dass Sie die In-Place-Operation auch über die Befehlszeile ausführen können VBoxManage.


3
Dies funktioniert, aber beachten Sie, dass docker-machine inspectdie ursprüngliche Speichermenge auch nach einer Änderung in der VirtualBox-GUI weiterhin angezeigt wird.
Tamlyn

2
Das stimmt, um docker-machine inspectden genauen Betrag melden zu können, müssen Sie ihn bearbeiten config.json(dort erhalten Sie inspectseine Informationen).
Nathanleclaire

1
Es ist am einfachsten, es in Virtualbox zu tun
Niranjan Sonachalam


14

Andere Antworten zeigten, wie der Speicher mit VBoxManage geändert werden kann:

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default

So bestätigen Sie die Änderung über die Befehlszeile:

VBoxManage showvminfo default | grep Memory

ODER

docker-machine ssh default free

Hallo cpep, kannst du deine Antwort bearbeiten und die Codeblöcke richtig formatieren ?
TT.

4

fox xhyve (eine weitere Virtualisierung unter macos) Sie können die Eigenschaft ~ / .docker / machine / default / config.json Driver / Memory (standardmäßig 1024) ändern und dann die Docker-Maschine neu starten, um Änderungen zu übernehmen


Ich habe es unter gefunden ~/.docker/machine/machines/default/config.json. Danke 👍
Tarek N. Elsamni
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.