Docker-makine belleği Mac nasıl artırılır


109

Docker'da yeniyim ve bir Docker görüntüsünden MemSQL'i kuran bu öğreticinin üzerinden geçmeye çalışıyorum - http://docs.memsql.com/4.0/setup/docker/ . Mac kullanıyorum boot2dockerve kullanımdan kaldırılmış görünen öğretici kullanıyor .

Sanal makinenin çalışması için 4 GB belleğe ihtiyacı vardır. Öğretici bunun nasıl yapılacağını belirtir, boot2dockerancak bunu docker-machine / docker toolbox ile yapmanın bir yolunu bulamıyorum.

İşte kullandığım komut ve boot2docker yapılandırmasını değiştirmeden öğreticiden geçmeye çalıştığım hata.

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

Yanıtlar:


111

docker makinesi oluşturduğunuzda, bellek boyutunu belirleyebilirsiniz:

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

Bunun yardımcı olup olmadığını bana bildirin.


Bu kesinlikle bellek tahsisini ayarlamak için doğru yer gibi görünüyor. Ancak, bu VM'yi yeniden başlattıktan sonra hala aynı hatayı alıyorum. In check-systemprogramı ( github.com/memsql/memsql-docker-quickstart/blob/master/... ), bu hatayı belirleyecek bu satırları görüyorum. 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
Yapılandırmayı değiştirerek bu çalışmayı elde edemedim, ancak docker machine vm'yi yukarıda gösterildiği gibi silip yeniden oluşturmak sorunu çözdü!
DJElbow

Elbette, ikinci yolu temizliyorum, artık işe yaramıyor gibi görünüyor.
BMW

179

Bunu komut satırı üzerinden yapabilirsiniz. Örneğin, makineyi varsayılan 1cpu / 2048MB RAM'den değiştirmek için şunu çalıştırın:

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

Daha sonra ayarlarınızı kontrol edebilirsiniz:

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

Ve docker-machine inspectşeylerin doğru durumunu bildirmek ~/.docker/machine/machines/default/config.jsoniçin değişikliklerinizi yansıtacak şekilde düzenleyin .


1
Bu, GUI (sürüm 5.0.16) çalışmadığında bile çalıştı.
MikeF

6
Bu cevap en üstte olmalı
nakajuice

5
Komut yürütüldükten sonra docker-machine inspectherhangi bir değişiklik gösterilmeyeceğini unutmayın. Ancak, çalıştırırsanız docker statsdeğişikliklerin uygulandığını göreceksiniz.
slovit

@slovit ve diğerleri: Docker-machine config.jsondosyasını gerçek boyutu yansıtacak şekilde değiştirebilirsiniz . Örnek: for default, örnek çözümde kullanıldığı gibi, ~/.docker/machine/machines/default/config.jsondosyayı, altındaki Memory(ve CPUayrıca değiştirilmişse) alt Driverözelliği olarak değiştirilecek şekilde değiştirin 4096. Ardından docker-machine inspectuygun değeri gösterecektir.
ScriptAutomate

80

MacOS'ta Docker sürüm 1.12.1 (derleme: 12133) ve üstü için, CPU'ları ve RAM'i UI'den değiştirme ve docker'ı yeniden başlatma seçeneği vardır. Tercihleri ​​araç çubuğundan bulabilirsiniz. Netlik için resim eklemek.

Güncelleme: Ağu 2020: Tercihler -> Kaynaklar (@ swedge218'e teşekkürler)

Eski Adım (muhtemelen şu anda feshedilmiştir): Tercihler -> Gelişmiş -> kaynakları ayarla -> Uygula ve Yeniden Başlat

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

docker gelişmiş sekmesi (bellek)


3
Bu, Gelişmiş sekmesine taşındı. Bunu paylaştığın için teşekkürler
GabLeRoux

Hem bariz hem de tamamen sezgisel olmayan adam - teşekkürler!
AlienWebguy

Virtualbox ile bot kullanırsam da bu değişiklikler geçerli olur mu? Veya mem boyutunu ayarlamak için sadece VBoxManage kullanmalı mıyım?
Artur79

2
Buna eşdeğer bir komut satırı var mı? Mac için Docker'ım var ama görünüşe göre docker-machine ls bana hiçbir şey vermiyor, bu yüzden varsayılan makineyi değiştiremiyorum.
Andrea Bergonzo

Tercihler -> Bugün itibariyle Kaynaklar.
swedge218

42

Docker Machine bakımcısı burada. Ayarlamayı düşünmüyorumconfig.jsonManuel olarak işe yarayacağını .

İki seçeneğiniz ya makineyi --virtualbox-memoryset ile oluşturmak ya da VirtualBox GUI'de VM'nin belleğini ayarlamaktır (sanırım o VM için "Ayarlar> Sistem"). Makinenin kapalı olduğundan ve çalışan küçük bir kaydırıcı olduğundan emin olun.

DÜZENLEME: Başka bir cevap, yerinde işlemi komut satırından kullanarak da yapabileceğinizi gösterir VBoxManage.


3
Bu çalışır, ancak docker-machine inspectVirtualBox GUI'de değiştirdikten sonra bile orijinal bellek miktarını bildirmeye devam edeceğini unutmayın .
Tamlyn

2
Yani sahip olmak için, doğru docker-machine inspectdoğru miktarda rapor, sen bunu düzenlemek zorunda config.json(en nerede inspectkendi bilgi alır).
nathanleclaire

1
Bunu Virtualbox'ta yapmak en basitidir
Niranjan Sonachalam


14

Diğer yanıtlar, VBoxManage kullanarak belleğin nasıl değiştirileceğini gösterdi:

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

Değişikliği komut satırından onaylamak için:

VBoxManage showvminfo default | grep Memory

VEYA

docker-machine ssh default free

Merhaba cpep, cevabınızı düzenleyebilir ve kod bloklarını doğru şekilde biçimlendirebilir misiniz?
TT.

4

fox xhyve (macOS altında başka bir sanallaştırma) ~ / .docker / machine / default / config.json özelliğini değiştirebilir Sürücü / Bellek (varsayılan olarak 1024), ardından değişiklikleri uygulamak için docker makineyi yeniden başlatabilirsiniz


Altında buldum ~/.docker/machine/machines/default/config.json. Teşekkürler 👍
Tarek N. Elsamni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.