GNU/Linux >> Belajar Linux >  >> Linux

Apa yang ada di dalam gambar/wadah Docker?

Membedakan antara gambar dapat membantu dan wadah (dokumen). Sebuah gambar statis dan hanya hidup di disk. Sebuah wadah adalah turunan dari gambar yang sedang berjalan dan itu termasuk pohon prosesnya sendiri serta RAM dan sumber daya runtime lainnya.

Sebuah gambar adalah pengelompokan logis dari lapisan ditambah metadata tentang apa yang harus dilakukan saat membuat wadah dan cara menyusun lapisan. Bagian dari metadata tersebut adalah bahwa setiap lapisan mengetahui ID induknya.

Jadi, apa yang masuk ke dalam sebuah layer? File (dan direktori) yang telah Anda tambahkan ke induknya. Ada juga file khusus ("whiteout") yang menunjukkan bahwa ada sesuatu yang dihapus dari induknya.

Saat Anda docker run sebuah gambar, docker membuat wadah:membuka semua lapisan dalam urutan yang benar, membuat sistem file "root" baru yang terpisah dari host. docker juga membaca metadata gambar dan memulai "titik masuk" atau "perintah" yang ditentukan saat gambar dibuat -- yang memulai subpohon proses baru. Dari dalam penampung, proses pertama tampak seperti akar dari pohon, tetapi dari host Anda dapat melihatnya sebagai subpohon dari proses.

Sistem file root adalah apa yang membuat satu distro Linux berbeda dari yang lain (mungkin ada beberapa perbedaan modul kernel juga, dan perbedaan sistem file bootloader/boot, tetapi ini biasanya tidak terlihat oleh proses yang sedang berjalan). Kernel dibagi dengan host dan, pada kenyataannya, masih mengelola tanggung jawabnya yang biasa di dalam wadah. Namun sistem file root berbeda, jadi saat Anda berada di dalam container, sepertinya dan terasa seperti distro apa pun yang ada di gambar Docker.

Kontainer tidak hanya memiliki sistem file dan pohon prosesnya sendiri, tetapi juga memiliki antarmuka jaringan logisnya sendiri dan, secara opsional, alokasi RAM dan waktu CPU-nya sendiri. Anda memegang kendali atas wadah, sebagai operator, sehingga Anda dapat memutuskan untuk berbagi antarmuka jaringan host dengan wadah, memberinya akses tak terbatas ke RAM dan CPU, dan bahkan memasang perangkat, file, dan direktori dari host ke dalam wadah. wadah. Setelan defaultnya adalah memisahkan berbagai hal, tetapi Anda memiliki kemampuan untuk merusak model isolasi sebanyak yang Anda perlukan.


Docker adalah pembungkus LXC Linux Containers dan dokumentasinya akan memberi tahu Anda secara mendetail apa yang dibagikan dan apa yang tidak.

Secara umum mesin host melihat/berisi semua yang ada di dalam wadah dari sistem file hingga proses, dll. Anda dapat mengeluarkan perintah ps pada host vm dan melihat proses di dalam wadah.

Ingat wadah buruh pelabuhan bukan VM - karenanya semuanya benar-benar berjalan secara native di host dan menggunakan kernel host secara langsung. Setiap wadah memiliki ruang nama penggunanya sendiri (mirip dengan root jails lama). Ada alat/fitur yang memastikan kontainer hanya melihat prosesnya sendiri, memiliki sistem file sendiri yang berlapis ke sistem file host, dan tumpukan jaringan yang disalurkan ke tumpukan jaringan host.


Linux
  1. 7 fitur wadah/transportasi gambar Linux yang menyenangkan

  2. Ekstrak File Dari Gambar Docker?

  3. Memperbarui container yang di-deploy berdasarkan image Docker

  1. Cara membuat gambar khusus dari wadah Docker

  2. Meneruskan port host ke wadah buruh pelabuhan

  3. Bagaimana cara menentukan apakah suatu proses berjalan di dalam lxc/Docker?

  1. Bisakah buruh pelabuhan berjalan di dalam Wadah Linux?

  2. Cara menjalankan tugas cron di dalam wadah buruh pelabuhan

  3. OS mana yang berjalan di wadah Docker saya?