Docker dan hos berkongsi kernel; pada dasarnya Docker adalah proses pada hos melaksanakan pengasingan sumber melalui ruang nama pengasingan proses.
Persekitaran pengendalian tutorial ini: sistem linux7.3, versi docker-1.13.1, komputer Dell G3.
Docker dan hos berkongsi kernel
Intinya ialah pengasingan proses yang dicapai melalui ruang nama kernel dan cgroup
Apabila bercakap tentang Docker, kita sering bercakap tentang pelaksanaan Docker. Ramai pembangun tahu bahawa bekas Docker pada dasarnya adalah proses pada mesin hos. Docker melaksanakan pengasingan sumber melalui ruang nama. Sekatan sumber dilaksanakan melalui cgroup, dan operasi fail yang cekap dilaksanakan melalui mekanisme salin atas tulis. Tetapi apabila mendalami butiran teknikal seperti ruang nama dan cgroup, kebanyakan pembangun akan berasa rugi. Jadi di sini, saya akan membawa anda terlebih dahulu ke dalam kernel Linux dan memahami butiran teknikal ruang nama dan cgroup.
pengasingan sumber ruang nama
Jika anda ingin melaksanakan bekas pengasingan sumber, di manakah anda harus bermula? Reaksi pertama sesetengah orang mungkin arahan chroot Perintah ini memberikan pengguna perasaan yang paling intuitif bahawa titik pelekap direktori root / ditukar selepas digunakan, iaitu sistem fail diasingkan. Seterusnya, untuk berkomunikasi dan mencari dalam persekitaran yang diedarkan, bekas mesti mempunyai IP bebas, port, penghalaan, dll., jadi pengasingan rangkaian secara semula jadi terlintas di fikiran. Pada masa yang sama, bekas itu juga memerlukan nama hos bebas untuk mengenal pasti dirinya pada rangkaian. Apabila saya memikirkan rangkaian, saya secara semula jadi memikirkan komunikasi, dan saya juga memikirkan keperluan untuk pengasingan komunikasi antara proses. Pembangun juga mungkin berfikir tentang isu kebenaran Pengasingan pengguna dan kumpulan pengguna menyedari pengasingan kebenaran pengguna. Akhir sekali, aplikasi yang berjalan dalam bekas perlu mempunyai sendiri (PID), dan secara semula jadi perlu diasingkan daripada PID dalam hos.
Oleh itu, enam pengasingan yang diperlukan untuk bekas pada asasnya telah dilengkapkan Kernel Linux menyediakan enam panggilan sistem pengasingan ruang nama ini, seperti yang ditunjukkan dalam Jadual 1-1.
Malah, salah satu tujuan utama ruang nama pelaksanaan kernel Linux adalah untuk melaksanakan perkhidmatan virtualisasi (bekas) ringan. Proses dalam ruang nama yang sama boleh merasakan perubahan satu sama lain dan tidak mengetahui apa-apa tentang proses luaran. Ini boleh memberikan proses dalam bekas itu ilusi bahawa ia berada dalam persekitaran sistem bebas, dengan itu mencapai kebebasan dan pengasingan.
Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"
Atas ialah kandungan terperinci Adakah docker berkongsi kernel dengan hos?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!