Rumah > Operasi dan penyelenggaraan > Docker > Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

WBOY
Lepaskan: 2022-02-17 18:48:32
ke hadapan
3280 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang sistem fail bersama dan pemahaman berlapis tentang prinsip imej Docker, termasuk isu yang berkaitan dengan sistem fail bersama, struktur hierarki dan amalan berlapis saya harap ia akan membantu semua orang.

Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Docker - Sistem Fail Union dan Pemahaman Berlapis Prinsip Pencerminan

1 Sistem)

UnionFS (Sistem Fail Kesatuan): Sistem Fail Union (UnionFS) ialah sistem fail berlapis, ringan dan berprestasi tinggi yang menyokong pengubahsuaian pada sistem fail kerana Satu penyerahan boleh digunakan lapisan oleh lapisan, dan direktori yang berbeza boleh dipasang pada sistem fail maya yang sama (satukan beberapa direktori ke dalam sistem fail maya tunggal). Sistem fail Union ialah asas imej Docker. Imej boleh diwarisi melalui lapisan Berdasarkan imej asas (tanpa imej induk), pelbagai imej aplikasi tertentu boleh dihasilkan.

Selain itu, bekas Docker yang berbeza boleh berkongsi beberapa lapisan sistem fail asas, dan pada masa yang sama menambah lapisan perubahan unik mereka sendiri, meningkatkan kecekapan storan.

AUFS (AnotherUnionFS) yang digunakan dalam Docker ialah sistem fail kesatuan. AUFS menyokong tetapan kebenaran baca sahaja, tulis baca dan boleh putih untuk setiap direktori ahli (serupa dengan cawangan Git Pada masa yang sama, AUFS mempunyai konsep yang serupa dengan hierarki Untuk cawangan Kebenaran baca sahaja boleh diubah suai secara logik (tanpa menjejaskan bahagian baca sahaja).

Docker pada masa ini menyokong jenis sistem fail bersama termasuk AUFS, btrfs, vfs dan DeviceMapper.

Ciri-ciri: Muatkan berbilang sistem fail pada masa yang sama, tetapi dari luar, hanya satu sistem fail dapat dilihat dengan memuatkan bersama akan menindih setiap lapisan sistem fail, supaya sistem fail akhir akan merangkumi semua asas fail dan direktori.

imej asas

imej asas tidak bergantung pada mana-mana imej lain, ia dibina sepenuhnya dari awal dan imej lain dibina di atasnya dibandingkan dengan asas bangunan dan asal usul pencerminan buruh pelabuhan.

Imej asas mempunyai dua makna: (1) ia tidak bergantung pada imej lain dan dibina dari awal; (2) imej lain boleh dikembangkan berdasarkannya.

Jadi, apa yang boleh dipanggil imej asas biasanya imej Docker dari pelbagai pengedaran Linux, seperti Ubuntu, Debian, CentOS, dll.

Prinsip pemuatan imej Docker

Imej Docker sebenarnya terdiri daripada lapisan sistem fail Tahap sistem fail ini ialah UnionFS.

Linux biasa memerlukan dua FS untuk dimulakan dan dijalankan, bootfs rootfs:

bootf (sistem fail but) terutamanya termasuk bpotloader dan kernel, dan bootloader terutamanya Boot memuatkan kernel, Linux akan memuatkan sistem fail bootfs apabila ia mula-mula dimulakan Lapisan bawah imej Docker ialah but. Lapisan ini adalah sama dengan sistem Linux/Unix biasa kami, termasuk pemuat but pemuat but dan kernel kernel. Apabila pemuatan but selesai, keseluruhan kernel berada dalam memori Pada masa ini, hak untuk menggunakan memori telah dipindahkan dari but ke kernel Pada masa ini, sistem juga akan menyahpasang but. Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

rootfs (sistem fail root), di atas but. Mengandungi direktori dan fail standard seperti /dev, /proc, /bin, /etc dan sebagainya dalam sistem Linux biasa. Roots ialah pelbagai pengedaran sistem pengendalian, seperti Ubuntu, Centos, dll.

Mengapa tiada kernel dalam imej Docker?

Dari segi saiz imej, imej yang agak kecil hanya melebihi 1KB atau beberapa MB, manakala fail kernel memerlukan beberapa Sepuluh MB, jadi tiada kernel dalam imej Selepas dimulakan sebagai bekas, imej akan terus menggunakan kernel hos, dan imej itu sendiri hanya menyediakan rootfs yang sepadan, iaitu fail ruang pengguna. sistem yang diperlukan untuk operasi biasa sistem, seperti /dev/, /proc, /bin, /etc dan direktori lain, jadi pada dasarnya tiada direktori /boot dalam bekas, dan /boot menyimpan fail dan direktori yang berkaitan dengan isirong.

Memandangkan bekas bermula dan berjalan terus menggunakan kernel hos, ia tidak langsung memanggil perkakasan fizikal, jadi tiada pemacu perkakasan yang terlibat, jadi kernel dan pemacu tidak digunakan. Bagi teknologi mesin maya, setiap mesin maya mempunyai kernel bebasnya sendiri

2 Struktur hierarki

Imej Docker ialah struktur berlapis, dengan setiap lapisan dibina pada lapisan lain Di atas, untuk mencapai fungsi. daripada menambah kandungan secara berperingkat, imej Docker turut dimuat turun dalam lapisan Ambil muat turun imej redis sebagai contoh:

Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Seperti yang anda boleh. lihat, imej baharu dijana dengan menindih lapisan imej asas demi lapisan. Setiap kali anda memasang perisian, anda menambah lapisan pada imej sedia ada. Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Mengapa imej Docker menggunakan struktur berlapis ini?

Faedah terbesar ialah perkongsian sumber. Sebagai contoh, jika berbilang imej dibina daripada imej Pangkalan yang sama, maka hos hanya perlu menyimpan satu imej asas pada cakera, dan hanya satu imej asas perlu dimuatkan ke dalam memori, supaya ia boleh menyediakan semua bekas , dan setiap lapisan imej boleh dikongsi.

Lapisan bekas boleh tulis

Imej docker adalah baca sahaja Apabila bekas bermula, lapisan boleh tulis baharu dimuatkan ke atas Cermin.

Lapisan baharu ini ialah lapisan bekas boleh tulis, dan segala-galanya di bawah bekas dipanggil lapisan cermin.

Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Docker menggunakan strategi salin atas tulis untuk memastikan keselamatan imej asas, serta prestasi yang lebih tinggi dan penggunaan ruang.

  • Apabila bekas perlu membaca fail

Mulakan dari lapisan imej atas dan cari ke bawah selepas menemuinya, baca ke dalam ingatan dalam ingatan, , boleh digunakan terus. Dalam erti kata lain, bekas Docker yang berjalan pada mesin yang sama berkongsi fail yang sama semasa runtime.

  • Apabila bekas perlu mengubah suai fail

Cari dari atas ke bawah dan salin ke lapisan bekas selepas menemuinya Untuk bekas, perkara yang anda boleh lihat ialah lapisan bekas Untuk fail ini, anda tidak boleh melihat fail dalam lapisan imej, dan kemudian mengubah suai terus fail dalam lapisan bekas.

  • Apabila bekas perlu memadamkan fail

Cari dari atas ke bawah, dan selepas menemuinya, rekodkan pemadaman dalam bekas itu , tetapi pemadaman lembut. Ini menyebabkan saiz imej hanya bertambah, bukan berkurangan.

  • Apabila bekas perlu menambah fail

Tambahkannya terus ke lapisan paling atas bekas boleh tulis tanpa menjejaskan lapisan imej.

Semua perubahan pada bekas, sama ada menambah, memadam atau mengubah suai fail, hanya akan berlaku dalam lapisan bekas. Hanya lapisan bekas boleh ditulis dan semua lapisan imej di bawah lapisan bekas adalah baca sahaja, jadi imej boleh dikongsi oleh berbilang bekas.

3. Amalan pelapisan - komited untuk menyerahkan imej

Buat bekas melalui imej, kemudian kendalikan lapisan bekas, pastikan lapisan imej tidak berubah, dan kemudian bungkus lapisan bekas dan lapisan imej selepas operasi Hantar sebagai imej baharu.

komit buruh pelabuhan: Buat imej baharu menggunakan bekas.

Sintaks:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Salin selepas log masuk

PILIHAN keterangan:

  • **-a*Pengarang cermin menyerahkan
  • ** -c*Gunakan arahan Dockerfile untuk mencipta imej;
  • **-m *Komit teks;
Contoh penggunaan: Cipta bekas melalui imej, kemudian kendalikan lapisan bekas, dan kemudian bungkus lapisan bekas yang dikendalikan dan lapisan imej ke dalam imej baharu untuk diserahkan.

1 Muat turun imej tomcat

2. Buat dan jalankan bekas tomcat melalui imej tomcat:

3 bekas:
docker run -d --name="tomcat01" tomcat
Salin selepas log masuk

4. Salin fail dalam direktori webapps.dist bekas tomcat ke direktori webapps:
docker exec -it tomcat01 /bin/bash
Salin selepas log masuk

5 >Tukar bekas dc904437d987 Simpan sebagai imej baharu dan tambah maklumat pengirim dan maklumat perihalan Imej yang diserahkan dinamakan tomcatplus dan versinya ialah 1.0:
cp -r webapps.dist/* webapps
Salin selepas log masuk

Anda boleh melihat penyerahan komit Saiz imej tomcat baharu adalah lebih besar sedikit daripada imej tomcat asal kerana kami menyalin fail dalam lapisan bekas.
docker commit -a="wanli" -m="add webapps files" dc904437d987 tomcatplus:1.0
Salin selepas log masuk

Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Pembelajaran yang disyorkan: "

tutorial video docker

"Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci)

Atas ialah kandungan terperinci Prinsip imej Docker: sistem fail bersama dan pemahaman berlapis (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
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