Enjin Docker ialah perisian teras yang digunakan untuk menjalankan dan mengurus bekas. Komponen utamanya ialah: Docker Client, Docker daemon, containerd dan runc.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.
1. Pengenalan kepada enjin Docker
Enjin Docker ialah perisian teras yang digunakan untuk menjalankan dan mengurus bekas
Enjin Docker dibangunkan oleh Banyak alatan khusus yang bekerjasama untuk mencipta dan menjalankan bekas, seperti API, pemacu pelaksanaan, masa jalan, proses shim, dsb.
- Komponen utama enjin Docker ialah: Docker Client, Docker daemon, containerd dan runc.
2. Penjelasan terperinci tentang enjin Docker
- Apabila Docker pertama kali dikeluarkan, ia terdiri daripada dua komponen teras: LXC dan daemon Docker.
- Daemon Docker ialah fail binari tunggal yang mengandungi perkara seperti klien Docker, API Docker, masa jalan kontena, pembinaan imej, dsb.
- LXC menyediakan keupayaan untuk mengendalikan alatan asas seperti ruang nama dan kumpulan kawalan (CGroup), yang merupakan teknologi virtualisasi kontena berdasarkan kernel Linux. Dalam Docker versi 0.9, Libcontainer menggantikan LXC sebagai pemacu pelaksanaan lalai.
2.1. Daemon Docker
- Lebih banyak masalah yang disebabkan oleh integriti daemon Docker:
- Kesukaran untuk menukar
- Berjalan lebih perlahan dan perlahan
- Ini bukan yang diharapkan oleh syarikat ekosistem
- Daemon menggunakan API gaya CRUD melalui gRPC dan Komunikasi kontena
2.2. runc
- runc pada asasnya ialah alat interaktif baris arahan ringan yang dibungkus untuk Libcontainer.
- Fungsi Jalankan: Cipta bekas
2.3. Bekas
- Fungsi utama: Pengurusan kitaran hayat kontena –mula|berhenti | pause|rm…
2.4. shim
- shim ialah alat yang sangat diperlukan untuk melaksanakan bekas tanpa daemon setiap kali Bekas akan mengambil contoh runc baharu Setelah bekas dibuat, proses runc yang sepadan akan keluar.
- Setelah runc proses induk keluar, proses bekas-shim yang berkaitan menjadi proses induk kontena
- Sebahagian daripada tanggungjawab shim:
- Pastikan semua aliran STDIN dan STDOUT dalam keadaan terbuka , supaya apabila daemon dimulakan semula, bekas tidak akan ditamatkan kerana penutupan paip.
- Maklum balas status keluar bekas kepada daemon.
2.5 Pelaksanaan pada Linux
- dockerd(Docker daemon), docker-containerd(containerd), Kedua-dua docker -containerd-shim(shim) dan docker-runc(runc) dilaksanakan sebagai binari berasingan.
2.6. Peranan daemon
- Fungsi utama: pengurusan imej, pembinaan imej, REST API, pengesahan, keselamatan, rangkaian teras dan orkestrasi .
Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"
Atas ialah kandungan terperinci apa itu enjin docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!