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.

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.


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.


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)


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.


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

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


Saya menemukannya di bawah ~/.docker/machine/machines/default/config.json. Terima kasih 👍
Tarek N. Elsamni
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.