Jak zwiększyć pamięć komputera Mac

108

Jestem nowy w Docker i próbuję przejść przez ten samouczek konfigurowania MemSQL z obrazu Dockera - http://docs.memsql.com/4.0/setup/docker/ . Jestem na komputerze Mac i samouczek używa, boot2dockerktóry wydaje się być przestarzały.

Maszyna wirtualna potrzebuje do działania 4 GB pamięci. Samouczek określa, jak to zrobić, boot2dockerale nie mogę znaleźć sposobu, aby to zrobić z przybornikiem docker-machine / docker.

Oto polecenie, którego używam, i błąd, który otrzymuję, próbując przejść przez samouczek bez zmiany konfiguracji boot2docker.

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.
DJElbow
źródło

Odpowiedzi:

111

kiedy tworzysz maszynę dokera, możesz wyznaczyć rozmiar pamięci:

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

Daj mi znać, jeśli to pomoże.

BMW
źródło
To zdecydowanie wydaje się być właściwym miejscem do dostosowania alokacji pamięci. Jednak nadal pojawia się ten sam błąd po ponownym uruchomieniu tej maszyny wirtualnej. W check-systemprogramie ( github.com/memsql/memsql-docker-quickstart/blob/master/… ) widzę te linie, które określałyby ten błąd. 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
Nie udało się to uzyskać, zmieniając konfigurację, ale usunięcie i ponowne utworzenie maszyny wirtualnej docker machine, jak pokazano powyżej, rozwiązało problem!
DJElbow
Jasne, czyszczę drugi sposób, wydaje się, że już nie działa.
BMW
178

Możesz to zrobić za pomocą wiersza poleceń. Na przykład, aby zmienić domyślny przebieg maszyny 1cpu / 2048MB RAM:

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

Następnie możesz sprawdzić swoje ustawienia:

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

I dla docker-machine inspectzgłosić prawidłowy stan rzeczy, edytować ~/.docker/machine/machines/default/config.json, aby odzwierciedlić zmiany.

Ran Rubinstein
źródło
1
To działało nawet wtedy, gdy nie działało GUI (wersja 5.0.16).
MikeF
6
Ta odpowiedź powinna być na górze
nakajuice
5
Zauważ, że po wykonaniu polecenia docker-machine inspectnie pokaże żadnych zmian. Jeśli jednak uruchomisz docker stats, zobaczysz, że zmiany zostały zastosowane.
slovit
@slovit i inne: możesz następnie zmodyfikować config.jsonplik docker-machine , aby odzwierciedlał rzeczywisty rozmiar. Przykład: for default, tak jak zostało to użyte w rozwiązaniu przykładowym, zmodyfikuj ~/.docker/machine/machines/default/config.jsonplik tak, aby Memory(i CPUjeśli została również zmodyfikowana) właściwość podrzędna w ramach Driverzostała zmieniona na 4096. Następnie docker-machine inspectpokaże odpowiednią wartość.
ScriptAutomate
80

W przypadku platformy Docker w wersji 1.12.1 (kompilacja: 12133) i nowszej w systemie macOS istnieje opcja zmiany procesora i pamięci RAM z poziomu interfejsu użytkownika i ponownego uruchomienia dockera. Możesz znaleźć preferencje na pasku narzędzi. Dołączanie obrazów dla większej przejrzystości.

Aktualizacja: sierpień 2020 r .: Preferencje -> Zasoby (dziękuję @ swedge218)

Stary krok (prawdopodobnie już niedziałający): Preferencje -> Zaawansowane -> dostosuj zasoby -> Zastosuj i uruchom ponownie

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

karta docker advanced (pamięć)

Srikar Appalaraju
źródło
3
To zostało przeniesione do zakładki Zaawansowane. Dzięki za udostępnienie tego.
GabLeRoux
Człowieku, który był zarówno oczywisty, jak i zupełnie nieintuicyjny - dziękuję!
AlienWebguy
Czy te zmiany obowiązują również, jeśli używam pontonu z virtualboxem? Czy powinienem używać VBoxManage tylko do dostosowania rozmiaru pamięci?
Artur79
2
Czy istnieje odpowiednik tego wiersza poleceń? Mam Dockera na Maca, ale najwyraźniej docker-machine ls nic mi nie daje, więc nie mogę zmodyfikować domyślnej maszyny.
Andrea Bergonzo
To Preferencje -> Zasoby na dzień dzisiejszy.
swedge218
42

Tutaj znajduje się opiekun Docker Machine. Nie sądzę, żeby config.jsonręczne ustawienie zadziałało.

Dwie opcje to utworzenie maszyny za pomocą --virtualbox-memoryzestawu lub dostosowanie pamięci maszyny wirtualnej w interfejsie GUI VirtualBox („Ustawienia> System” dla tej maszyny wirtualnej, jak sądzę). Upewnij się, że urządzenie jest wyłączone i powinien być mały działający suwak.

EDYCJA: Inna odpowiedź pokazuje, że operację w miejscu można wykonać z wiersza poleceń, również za pomocą VBoxManage.

nathanleclaire
źródło
3
To działa, ale pamiętaj, że docker-machine inspectbędzie nadal zgłaszać pierwotną ilość pamięci, nawet po jej zmianie w interfejsie GUI VirtualBox.
Tamlyn
2
To prawda, w celu uzyskania docker-machine inspectzgłosić dokładną kwotę, to zrobić trzeba zmodyfikować config.json(to gdzie inspectdostaje jego informacji).
nathanleclaire
1
Zrobienie tego w Virtualbox jest najprostsze
Niranjan Sonachalam
14

Inne odpowiedzi pokazały, jak zmienić pamięć za pomocą VBoxManage:

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

Aby potwierdzić zmianę z wiersza poleceń:

VBoxManage showvminfo default | grep Memory

LUB

docker-machine ssh default free
cpep
źródło
Cześć cpep, czy możesz edytować swoją odpowiedź i poprawnie sformatować bloki kodu ?
TT.
4

fox xhyve (kolejna wirtualizacja pod macos) możesz zmodyfikować ~ / .docker / machine / default / config.json właściwość Sterownik / pamięć (domyślnie 1024), a następnie zrestartuj maszynę docker, aby zastosować zmiany

dchekmarev
źródło
Znalazłem to pod ~/.docker/machine/machines/default/config.json. Dzięki 👍
Tarek N. Elsamni