Docker ialah salah satu teknologi kontena yang paling popular hari ini, yang membolehkan aplikasi dijalankan dalam bekas serba lengkap. Ciri penting Docker ialah ia boleh mengurus dan mengehadkan penggunaan CPU dan memori bagi bekas, yang penting untuk mengekalkan ketersediaan dan kestabilan aplikasi yang tinggi. Dalam artikel ini, kami akan memberi tumpuan kepada cara mengehadkan saiz memori bekas Docker.
1 Fahami pengurusan memori Docker
Dalam Docker, setiap bekas mempunyai ruang nama dan sekatan sumbernya sendiri. Bekas dengan had memori boleh dimulakan menggunakan arahan berikut:
docker run -it --memory 512m --name example_container ubuntu:latest
Dalam contoh ini, kami mencipta bekas bernama example_container dan menetapkan had ingatannya kepada 512MB. Perintah itu juga menentukan imej asas yang digunakan oleh bekas - ubuntu:latest. Ambil perhatian bahawa simbol "-it" ialah satu cara untuk memberitahu Docker untuk melampirkan stdin dan stdout bekas pada sesi terminal itu.
Arahan di atas boleh mengesahkan penggunaan memori semasa bekas melalui arahan berikut:
docker stats example_container
Dengan arahan ini, anda boleh melihat penggunaan CPU, penggunaan memori dan penghantaran rangkaian bagi kontena dalam Kadar masa nyata dsb.
2. Kaedah untuk mengehadkan memori bekas
Selain pilihan baris arahan, apabila bekas sedang berjalan, anda juga boleh menggunakan kaedah berikut untuk mengehadkan penggunaan memori bekas:
1. Gunakan arahan "kemas kini docker"
Anda boleh menggunakan arahan "kemas kini docker" untuk mengubah suai had ingatan bekas yang sedang berjalan. Perintah berikut boleh mengubah suai had memori example_container kepada 1GB:
docker update --memory 1g example_container
2 Gunakan docker-compose
Dalam persekitaran Docker Compose, anda boleh menggunakan kata kunci "mem_limit" untuk menetapkan. had Memori bekas. Berikut ialah contoh fail konfigurasi bekas, di mana bekas itu dinamakan "db" dan had ingatannya ditetapkan kepada 512MB:
version: '3' services: db: image: mongo:4.4 mem_limit: 512m
Dalam contoh ini, kami menggunakan imej mongo:4.4 sebagai Imej asas bekas dan namakannya "db". Dalam kata kunci "mem_limit", kami menetapkan had memori bekas ini kepada 512MB.
3. Cara menguji had ingatan bekas
Untuk mengesahkan sama ada had ingatan bekas itu berkuat kuasa, kami boleh menjalankan beberapa tugas intensif memori dalam bekas, contohnya, alat penanda aras tekanan-ng ujian "matriks". Berikut ialah contoh di mana kami menjalankan ujian "matriks" untuk mengambil lebih banyak memori:
docker exec example_container stress-ng --matrix 1 -t 10s
Dalam contoh ini, kami menggunakan arahan "docker exec" untuk menjalankan stress-ng dalam bekas yang sedang berjalan example_container "matriks "ujian, tempohnya ialah 10 saat.
Semasa ujian, kita boleh memerhatikan penggunaan memori bekas menggunakan arahan berikut:
docker stats example_container
Biasanya, stress-ng perlu mengambil banyak masa untuk tempoh ujian yang ditentukan Memori. Jika bekas berjaya menggunakan hanya had memori yang ditentukan, maka ujian ini akan mengakibatkan keadaan kehabisan ingatan.
Ringkasan
Melalui artikel ini, kami mempelajari cara mengehadkan penggunaan memori bekas Docker. Docker menyediakan beberapa cara untuk mengawal penggunaan memori bekas. Untuk memastikan bekas stabil dan sangat tersedia, adalah perlu untuk mengehadkan penggunaan memori bekas. Melalui percubaan dan penanda aras, kami boleh mengesahkan bahawa bekas mematuhi had memori yang ditentukan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk mengehadkan saiz memori bekas docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!