Apakah mungkin untuk mengontrol berapa banyak memori wadah individu terbatas?
Misalnya mengalokasikan 16GB ke Postgres, tetapi batasi wadah Rails hingga 4GB. Memori minimum seperti apa yang harus dialokasikan ke host server yang menjalankan docker-machine, dan apakah ini mungkin?
Jawaban ini https://serverfault.com/a/645888/210752 menunjukkan bahwa wadah akan mengalokasikan memori sesuai kebutuhan. Ini belum menjadi pengalaman saya di lingkungan pengembangan (secara default mesin buruh pelabuhan dialokasikan 2GB).
Seperti yang disebutkan dalam jawaban atas pertanyaan di Edit ke-2 anda, kontainer tidak seperti VM karena Anda biasanya tidak memesan memori untuk mereka seperti yang Anda lakukan dengan mesin Virtual. Karena mereka semua berjalan pada OS yang sama, dapat mengirimkan memori yang diperlukan untuk proses yang berbeda, sama seperti jika mereka tidak berjalan dalam sebuah wadah. Artinya, memori dikumpulkan untuk semua proses, terlepas dari wadah.
Apa yang Anda lakukan dalam contoh di atas dengan docker-machine adalah kumpulan memori total host 'virtual'. Dalam kasus produksi Anda, itu akan menjadi keseluruhan 128 GB (kecuali jika Anda berencana untuk juga menggunakan docker-machine atau VM untuk menyegmentasikannya).
Namun, kontainer juga merupakan cara yang bagus untuk memanfaatkan kernel cgroups (kelompok kontrol) fitur, yang memungkinkan Anda mengkonfigurasi manajemen sumber daya untuk sistem kontainer keseluruhan. Ini tidak memungkinkan Anda' memesan ' memori ke wadah, tetapi Anda dapat mengatur batas atas ke semua memori wadah Anda sehingga seseorang tidak akan memakan memori yang dapat digunakan untuk orang lain (jika terjadi kebocoran atau bug misalnya).
Dengan Docker, tergantung pada backend kontainer yang digunakan, Anda dapat mengatur batas memori dasar sebagai berikut:
Saat menjalankan libcontainer default docker, dengan menjalankan wadah dengan -m atau - memori opsi
Saat menjalankan penyedia LXC lawas, dengan menjalankan wadah dengan opsi LXC lxc.cgroup.CPU.memori= Jumlah menggunakan -- lxc-conf
@ HopelessN00b tidak masalah … Saya pikir pertanyaan itu tidak diucapkan dengan baik di awal. Saya telah banyak bekerja dengan infrastruktur tetapi Docker baru bagi saya. Saya telah memasang karunia … memiliki hari besar!