Rumah > Operasi dan penyelenggaraan > Docker > Apakah dua teknologi teras docker?

Apakah dua teknologi teras docker?

青灯夜游
Lepaskan: 2022-05-11 12:57:12
asal
2842 orang telah melayarinya

Dua teknologi teras: 1. "Ruang nama Linux", yang merupakan sejenis pengkapsulan dan pengasingan sumber sistem global, supaya proses dalam ruang nama yang berbeza mempunyai sumber sistem global bebas 2. "Kumpulan Kawalan", yang boleh Mengasingkan sumber fizikal pada mesin hos dan melaksanakan kuota dan ukuran sumber.

Apakah dua teknologi teras docker?

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.

Docker ialah projek sumber terbuka awan berdasarkan bahasa Go.

Docker menyelesaikan masalah persekitaran pembangunan yang konsisten, persekitaran ujian dan persekitaran pengeluaran melalui teknologi virtualisasi, membolehkan Apl dan persekitaran berjalannya mencapai tujuan "Bina, Hantar dan Jalankan Mana-mana APP, Di Mana-mana". Teknologi virtualisasi kontena yang memudahkan penyepaduan berterusan dan memudahkan pelepasan dan pengembangan keseluruhan.

Dua teknologi teras Docker: Ruang Nama dan Kumpulan Pengawal.

1. Pengasingan: Ruang Nama Linux (ns)

Ruang nama Linux ialah sejenis pengkapsulan dan pengasingan sumber sistem global. Ini membolehkan proses dalam ruang nama yang berbeza mempunyai sumber sistem global yang bebas Mengubah sumber sistem dalam satu ruang nama hanya akan menjejaskan proses dalam ruang nama semasa dan tidak mempunyai kesan pada proses dalam ruang nama lain. Sumber ini termasuk: pokok proses, antara muka rangkaian, titik lekap, komunikasi antara proses dan sumber lain. Proses dalam ruang nama yang sama boleh melihat perubahan satu sama lain dan tidak mengetahui apa-apa tentang proses luaran. Ini boleh memberikan proses dalam bekas itu ilusi bahawa ia berada dalam sistem bebas, sekali gus mencapai tujuan pengasingan.

Setiap contoh pengguna diasingkan antara satu sama lain dan tidak menjejaskan satu sama lain. Kaedah yang diberikan oleh kaedah virtualisasi perkakasan am ialah VM, manakala kaedah yang diberikan oleh LXC ialah bekas, dan untuk lebih spesifik, ia adalah ruang nama kernel. Antaranya, pid, net, ipc, mnt, uts, pengguna dan ruang nama lain Asingkan proses bekas, rangkaian, mesej, sistem fail, UTS ("Sistem Perkongsian Masa UNIX") dan ruang pengguna.

1), ruang nama pid

Proses pengguna yang berbeza diasingkan oleh ruang nama pid dan ruang nama yang berbeza boleh mempunyai pid yang sama. Proses induk bagi semua proses LXC dalam docker ialah proses docker, dan setiap proses lxc mempunyai ruang nama yang berbeza. Pada masa yang sama, kerana bersarang dibenarkan, Docker dalam Docker boleh dilaksanakan dengan mudah.

2), ruang nama bersih

Dengan ruang nama pid, pid dalam setiap ruang nama boleh diasingkan antara satu sama lain, tetapi port rangkaian masih berkongsi port hos. Pengasingan rangkaian dicapai melalui ruang nama bersih Setiap ruang nama bersih mempunyai peranti rangkaian bebas, alamat IP, jadual penghalaan IP dan direktori /proc/net. Dengan cara ini, rangkaian setiap bekas boleh diasingkan. Secara lalai, docker menggunakan veth untuk menyambungkan kad rangkaian maya dalam bekas ke jambatan docker: docker0 pada hos.

3), interaksi proses dalam ruang nama ipc

bekas masih menggunakan kaedah interaksi antara proses Linux biasa (komunikasi antara proses - IPC), termasuk semaphore biasa dan mesej Baris gilir dan ingatan bersama. Walau bagaimanapun, tidak seperti VM, interaksi antara proses bekas sebenarnya adalah interaksi antara proses dengan ruang nama pid yang sama pada hos, jadi maklumat ruang nama perlu ditambah apabila memohon sumber IPC - setiap sumber IPC mempunyai 32 unik -bit ID.

4), ruang nama mnt

adalah serupa dengan chroot, meletakkan proses dalam direktori khusus untuk pelaksanaan. Ruang nama mnt membenarkan proses dalam ruang nama yang berbeza untuk melihat struktur fail yang berbeza, supaya direktori fail yang dilihat oleh proses dalam setiap ruang nama diasingkan. Berbeza daripada chroot, maklumat dalam /proc/mounts bagi bekas dalam setiap ruang nama hanya mengandungi titik pelekap ruang nama.

5), ruang nama uts

Ruang nama UTS ("Sistem Perkongsian Masa UNIX") membenarkan setiap bekas mempunyai nama hos dan nama domain bebas, menjadikannya lebih dipercayai pada rangkaian boleh dianggap sebagai nod bebas dan bukannya proses pada Hos.

6), ruang nama pengguna

Setiap bekas boleh mempunyai id pengguna dan kumpulan yang berbeza, yang bermaksud anda boleh menggunakan pengguna di dalam bekas untuk melaksanakan program bukan pada Hos.

2. Sekatan sumber: Kumpulan Kawalan (cgroup)

Ruang nama mengasingkan sistem fail, rangkaian dan hos untuk proses yang baru dibuat Proses antara mesin diasingkan antara satu sama lain, tetapi ruang nama tidak dapat memberikan kita pengasingan sumber fizikal. Tetapi jika anda menjalankan berbilang bekas pada mesin yang sama yang tidak tahu apa-apa tentang satu sama lain dan mesin hos, bekas ini bersama-sama menduduki sumber fizikal mesin hos.

Kumpulan Kawalan (pendek kata CGroup) dapat mengasingkan sumber fizikal pada mesin hos, seperti CPU, memori, cakera I/O dan lebar jalur rangkaian. Setiap CGroup ialah sekumpulan proses yang dihadkan oleh piawaian dan parameter yang sama Terdapat hubungan hierarki antara kumpulan CG yang berbeza, yang bermaksud bahawa mereka boleh mewarisi beberapa piawaian dan parameter untuk menyekat penggunaan sumber daripada kelas induk mereka.

cgroup melaksanakan kuota dan pengukuran sumber. Penggunaan cgroups adalah sangat mudah Ia menyediakan antara muka seperti fail Cipta folder baharu dalam direktori /cgroup untuk mencipta fail tugasan baharu dalam folder ini dan tulis pid untuk merealisasikan proses tersebut kawalan sumber. kumpulan boleh mengehadkan sumber sembilan subsistem blkio, cpu, cpuacct, cpuset, peranti, penyejuk beku, memori, net_cls dan ns Berikut ialah penerangan terperinci bagi setiap subsistem:

  • blkio tetapan Subsistem ini menyekat kawalan input dan output untuk setiap peranti blok. Contohnya: cakera, CD, USB, dsb.

  • cpu Subsistem ini menggunakan penjadual untuk menyediakan akses cpu kepada tugasan cgroup.

  • cpuacct menjana laporan sumber cpu untuk tugasan cgroup.

  • cpuset Jika ia ialah CPU berbilang teras, subsistem ini akan memperuntukkan CPU dan memori yang berasingan untuk tugasan cgroup.

  • peranti Benarkan atau tolak akses kepada peranti melalui tugasan cgroup.

  • penyejuk beku menjeda dan menyambung semula tugasan cgroup.

  • memori menetapkan had memori untuk setiap cgroup dan menjana laporan sumber memori.

  • net_cls menandakan setiap paket rangkaian untuk kemudahan cgroup.

  • subsistem ruang nama ns.

Terdapat juga hubungan tertentu antara sembilan subsistem di atas Sila rujuk dokumentasi rasmi untuk butiran.

Pembelajaran yang disyorkan: "

tutorial video buruh pelabuhan"

Atas ialah kandungan terperinci Apakah dua teknologi teras docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan