Bagaimana cara meningkatkan memori docker-mesin Mac

108

Saya baru mengenal Docker, dan mencoba melalui tutorial ini mengatur MemSQL dari image Docker - http://docs.memsql.com/4.0/setup/docker/ . Saya menggunakan Mac, dan penggunaan tutorial boot2dockeryang tampaknya sudah usang.

VM membutuhkan memori 4GB untuk dijalankan. Tutorial menentukan bagaimana melakukan ini dengan boot2dockertetapi saya tidak dapat menemukan cara untuk melakukan ini dengan toolbox docker-machine / docker.

Berikut adalah perintah yang saya gunakan dan kesalahan yang saya dapatkan hanya mencoba melalui tutorial tanpa mengubah konfigurasi boot2docker.

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

Jawaban:

111

saat Anda membuat mesin buruh pelabuhan, Anda dapat menentukan ukuran memori:

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

Beri tahu saya jika ini membantu.

BMW
sumber
Ini sepertinya tempat yang tepat untuk menyesuaikan alokasi memori. Namun, masih mendapatkan kesalahan yang sama setelah memulai ulang VM ini. Dalam check-systemprogram ( github.com/memsql/memsql-docker-quickstart/blob/master/… ), saya melihat baris-baris ini yang akan menentukan kesalahan ini. 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
Tidak bisa membuat ini berfungsi dengan mengubah konfigurasi, tetapi menghapus dan membuat ulang mesin buruh pelabuhan vm seperti yang ditunjukkan di atas memecahkan masalah!
DJElbow
Tentu, saya bersihkan dengan cara kedua, sepertinya tidak berfungsi lagi.
BMW
178

Anda dapat melakukannya melalui baris perintah. Misalnya, untuk mengubah mesin dari RAM default 1cpu / 2048MB, jalankan:

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

Anda kemudian dapat memeriksa pengaturan Anda:

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

Dan untuk docker-machine inspectmelaporkan keadaan yang benar, edit ~/.docker/machine/machines/default/config.jsonuntuk mencerminkan perubahan Anda.

Ran Rubinstein
sumber
1
Ini bekerja bahkan ketika GUI (versi 5.0.16) tidak.
MikeF
6
Jawaban ini seharusnya ada di atas
nakajuice
5
Perhatikan bahwa setelah perintah dijalankan docker-machine inspecttidak akan menampilkan perubahan apa pun. Namun, jika Anda menjalankan docker statsAnda akan melihat bahwa perubahan telah diterapkan.
slovit
@slovit dan lainnya: Anda kemudian dapat memodifikasi file docker-machine config.jsonuntuk mencerminkan ukuran sebenarnya. Contoh: untuk default, seperti yang digunakan dalam solusi contoh, ubah ~/.docker/machine/machines/default/config.jsonfile sehingga subproperti Memory(dan CPUjika juga diubah) di bawah Driverdiubah menjadi 4096. Kemudian, docker-machine inspectakan menunjukkan nilai yang tepat.
ScriptAutomate
80

Untuk Docker versi 1.12.1 (build: 12133) dan lebih tinggi di macOS, ada opsi untuk mengubah CPU dan RAM dari UI dan memulai ulang buruh pelabuhan. Anda dapat menemukan preferensi dari toolbar. Melampirkan gambar untuk kejelasan.

Pembaruan: Agustus 2020: Preferensi -> Sumber Daya (terima kasih kepada @ swedge218)

Langkah Lama (mungkin sudah tidak berfungsi sekarang): Preferensi -> Lanjutan -> sesuaikan sumber daya -> Terapkan & Mulai Ulang

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

tab lanjutan buruh pelabuhan (memori)

Srikar Appalaraju
sumber
3
Ini telah pindah ke tab Advanced. Terima kasih telah membagikan ini.
GabLeRoux
Pria yang jelas dan sama sekali tidak intuitif - terima kasih!
AlienWebguy
Apakah perubahan tersebut juga berlaku jika saya menggunakan kolek dengan virtualbox? Atau saya hanya harus menggunakan VBoxManage untuk menyesuaikan ukuran mem?
Artur79
2
Apakah ada baris perintah yang setara dengan ini? Saya memiliki Docker untuk mac tetapi tampaknya mesin galangan-ls tidak memberi saya apa-apa sehingga saya tidak dapat memodifikasi mesin default.
Andrea Bergonzo
Ini Preferensi -> Sumber daya untuk hari ini.
swedge218
42

Pemelihara Mesin Docker di sini. Saya tidak berpikir menyesuaikan config.jsonsecara manual akan berhasil.

Dua pilihan Anda adalah membuat mesin dengan --virtualbox-memoryset, atau menyesuaikan memori VM di VirtualBox GUI ("Pengaturan> Sistem" untuk VM itu menurut saya). Pastikan mesin dimatikan dan harus ada penggeser kecil yang berfungsi.

EDIT: Jawaban lain menunjukkan bahwa Anda dapat melakukan operasi di tempat dari baris perintah juga menggunakan VBoxManage.

nathanleclaire
sumber
3
Ini berfungsi tetapi perhatikan bahwa docker-machine inspectakan terus melaporkan jumlah asli memori bahkan setelah mengubahnya di VirtualBox GUI.
Tamlyn
2
Itu benar, untuk bisa docker-machine inspectmelaporkan jumlah yang akurat, Anda memang harus mengedit config.json(dari situlah inspectmendapatkan informasinya).
nathanleclaire
1
Melakukannya di Virtualbox adalah yang paling sederhana
Niranjan Sonachalam
14

Jawaban lain menunjukkan cara mengubah memori menggunakan VBoxManage:

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

Untuk mengonfirmasi perubahan dari baris perintah:

VBoxManage showvminfo default | grep Memory

ATAU

docker-machine ssh default free
cpep
sumber
Hai cpep, dapatkah Anda mengedit jawaban Anda dan memformat blok kode dengan benar?
TT.
4

fox xhyve (virtualisasi lain di bawah macos) Anda dapat memodifikasi ~ / .docker / machine / default / config.json properti Driver / Memory (default ke 1024) kemudian restart mesin galangan untuk menerapkan perubahan

dchekmarev
sumber
Saya menemukannya di bawah ~/.docker/machine/machines/default/config.json. Terima kasih 👍
Tarek N. Elsamni