Analisis mendalam lapisan fail docker (contoh terperinci)
Artikel ini membawakan anda pengetahuan yang berkaitan tentang pelapisan fail docker Artikel ini menggunakan contoh bekas docker untuk menerangkan beberapa prinsip lapisan fail docker.
Penyediaan Pengetahuan
- Docker sebenarnya menggunakan beberapa ciri Kernel Linux untuk mencapai pengasingan sumber, dan sistem fail adalah salah satu daripadanya , untuk membolehkan sumber digunakan dengan lebih cekap, docker menggunakan struktur sistem fail hierarki untuk melaksanakan sistem fail kontena.
- Secara peribadi, saya rasa prinsipnya sedikit seperti konsep alam semesta selari Sesetengah orang percaya bahawa terdapat alam semesta selari di alam semesta kita, iaitu pilihan berbeza yang kita buat akan mengedarkan alam semesta yang berbeza dan terus berjalan. . Bermimpi adalah dapat mengembara di antara alam semesta yang selari ini. Ia agak serupa di sini Selepas kita membungkus imej dan menjalankannya melalui docker run, alam semesta yang berbeza sebenarnya dicipta atas dasar ini Apabila kontena terus berjalan, kandungan kontena adalah sama dengan imej asal. Perkara akan mempunyai banyak penyelewengan dan perbezaan, dan secara beransur-ansur membentuk alam semesta mereka sendiri.
Sistem Fail Docker
Status lapisan sistem fail setiap bekas boleh diperolehi daripada pemeriksaan docker [id-kontainer] --format={{.GraphDriver}}
{map[LowerDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b-init/diff:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/diff MergedDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b/merged UpperDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b/diff WorkDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b/work] overlay2}
Terdapat empat jenis terutamanya:
LowerDir
Ini ialah semua bekas berdasarkan imej ini akan menghala ke sistem fail yang sama, iaitu lapisan imej . Semua bekas Lapisan ini akan digunakan.
Jadi dari manakah lapisan ini berasal? untuk menyediakan sistem fail akhir dalam bekas
UpperDir
Ini adalah untuk merekodkan operasi bekas yang berbeza, dan kemudian melalui perbandingan lapisan Bawah, lapisan Gabung boleh dihasilkan
WorkDir
Belum difahami secara mendalam
Contoh
Lihat maklumat sistem fail lapisan cermindocker run -d alpine:latest
Perhatikan UpperDir , ini adalah lapisan atas imej, iaitu, kita boleh membuat pengubahsuaian pada tahap ini, yang akan menjejaskan bekas yang dibuat kemudian
docker inspect alpine --format={{.GraphDriver}}
{map[MergedDir:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/merged UpperDir:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/diff WorkDir:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/work] overlay2}
Anda boleh melihat bahawa lapisan bawah bekas adalah lapisan atas imej Pengubahsuaian yang kami buat pada bekas akan ditunjukkan di lapisan atas, dan lapisan yang digabungkan akan disusun dan. dipaparkan pada bekas.
docker inspect 9a118484ba --format={{.GraphDriver}}
{map[LowerDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14-init/diff:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/diff MergedDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14/merged UpperDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14/diff WorkDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14/work] overlay2}
docker diff 9a118484ba
# docker exec -it ca91bb /bin/sh / # echo "helloWorld" > /tmp/hello.txt
docker diff ca91bbffb801 C /root C /root/.ash_history C /tmp A /tmp/hello.txt
tree -L 1 diff/ diff/ ├── root └── tmp2 directories, 0 files
Daripada eksperimen di atas, kita boleh tahu bahawa lapisan atas ialah kandungan tambahan, yang dicerminkan dalam perubahan bekas dengan bergabung dengan lapisan bawah. Jadi bolehkah kita mengubah suai lapisan atas secara langsung untuk mengendalikan bekas?
- Kami menambah demo direktori dalam direktori di mana bahagian atas terletak dan menyentuh fail di dalamnya
-
Mari kita lihat sama ada kita dapat melihat fail yang kami cipta daripada bekasAnda dapat melihat bahawa ia telah berkuat kuasa, jadi jika kami ingin memulakan bekas ini, kami boleh memadamkan terus semua kandungan lapisan atas.
# tree -L 2 ./ ./ ├── demo │ └── mytest.log ├── root └── tmp └── hello.txt
Salin selepas log masuk/demo # pwd /demo /demo # ls mytest.log
Salin selepas log masukAplikasi
Cari jejak pemasangan perisian
- Dalam proses projek terdahulu, pelanggan sentiasa memerlukan kami untuk menyediakan, Kami tidak pernah menemui cara yang lebih baik untuk memberikan pelanggan kandungan yang akan diubah suai oleh perisian ejen kami Berdasarkan aplikasi fail berlapis docker ini, kami boleh menggunakan ejen pada bekas, dan kemudian ia boleh dilihat dengan sepintas lalu Temui direktori dan direktori mana. fail yang akan diubah suai oleh perisian.
-
Cepat pulihkan bekas
Cepat berinteraksi dengan sistem fail kontena
Lindungi yang mendasari sistem fail Tidak dimusnahkan
Jimat ruang hos
-
Pembelajaran yang disyorkan: "
tutorial video docker "
Atas ialah kandungan terperinci Analisis mendalam lapisan fail docker (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data
