Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apa yang perlu dilakukan jika imej induk docker tidak boleh dipadamkan (dua kaedah)

Apa yang perlu dilakukan jika imej induk docker tidak boleh dipadamkan (dua kaedah)

PHPz
PHPzasal
2023-04-18 15:21:11915semak imbas

Docker ialah alat sumber terbuka yang sangat popular untuk mencipta, menggunakan dan menjalankan aplikasi. Berbanding dengan mesin maya, Docker menyediakan virtualisasi yang lebih ringan, membolehkan aplikasi digunakan dengan cepat dan dijalankan pada mana-mana sistem yang menyokong Docker.

Dalam Docker, imej ialah bekas Docker boleh laku yang mengandungi semua kebergantungan dan konfigurasi yang diperlukan untuk aplikasi dijalankan. Bekas docker boleh dibina berdasarkan imej sedia ada Kaedah pembinaan ini dipanggil pembinaan berlapis. Setiap lapisan mewakili konfigurasi atau pergantungan tertentu.

Prinsip kerja bekas Docker adalah serupa dengan struktur pepohon dalam struktur data Setiap imej ialah nod, dan hubungan ibu bapa-anak terbentuk antara lapisan. Ini menimbulkan persoalan Jika kita memadamkan imej induk, adakah imej anaknya juga tidak boleh digunakan?

Jawapannya ya. Oleh kerana cermin anak bergantung pada konfigurasi atau kebergantungan tertentu dalam imej induk, jika imej induk dipadamkan, cermin anak tidak akan berfungsi dengan betul.

Sistem fail pada setiap lapisan dalam bekas Docker adalah baca sahaja, jadi apabila imej dijalankan dalam Docker, ia mencipta lapisan baca-tulis yang membolehkan bekas mengubah suai sistem fail di dalam bekas. Apabila pengubahsuaian dibuat di dalam bekas, Docker menggunakan sistem fail bersama untuk menggabungkan lapisan baca-tulis dan lapisan imej, supaya fail yang diubah suai dikemas kini dalam lapisan baca-tulis tanpa menjejaskan lapisan imej asal.

Apabila bekas dihentikan dan dipadamkan, lapisan baca-tulisnya juga akan dipadamkan, tetapi lapisan cermin tidak akan dipadamkan. Oleh itu, jika imej berfungsi sebagai imej induk imej lain, lapisan imejnya mesti sentiasa wujud, jika tidak, imej kanak-kanak tidak akan dapat digunakan.

Jadi, apakah yang perlu kita lakukan jika kita ingin memadamkan cermin tetapi tidak mahu menjejaskan penggunaan sub-cerminnya? Terdapat dua penyelesaian di sini:

  1. Ubah suai kebergantungan dan konfigurasi dalam Fail Docker

Jika imej dibina bergantung pada imej lain, maka kami boleh mengubah suai Ketergantungan Fail Docker dan konfigurasi dalam fail untuk menyelesaikan masalah bahawa imej induk tidak boleh dipadamkan. Anda boleh menggunakan arahan COPY atau ADD dalam Dockerfile untuk menyalin fail atau direktori yang diperlukan ke imej dan bukannya mendapatkannya daripada imej lain. Dengan cara ini, tidak perlu bergantung pada binaan imej lain dan ia tidak akan terjejas dengan memadamkan imej induk.

  1. Gunakan cermin eksport dan import

Jika cermin telah digunakan sebagai cermin induk cermin lain, tetapi kita tidak mahu menjejaskan penggunaan anaknya cermin, maka kita boleh menggunakan eksport dan import Cermin untuk menyelesaikan masalah. Mula-mula, kita perlu mengeksport imej:

docker save <image-name>:<tag> > /path/to/save/image.tar

Kemudian, kita boleh menggunakan arahan docker load untuk mengimport imej pada sistem lain supaya imej itu boleh terus digunakan.

docker load < /path/to/save/image.tar

Dengan cara ini kita boleh mengarkibkan imej untuk digunakan apabila diperlukan.

Ringkasan:

Dalam Docker, kebergantungan imej adalah sangat penting, dan kewujudan imej induk adalah penting untuk penggunaan imej anak. Jika kita ingin memadamkan imej induk, kita mesti mempertimbangkan kesannya pada imej lain. Apabila membina imej Docker, kami boleh menggunakan arahan COPY atau ADD untuk menyalin fail atau direktori yang diperlukan ke imej untuk mengelakkan bergantung pada imej induk. Apabila kita perlu memindahkan imej, kita boleh menggunakan kaedah eksport dan import imej untuk memudahkan penggunaan dalam sistem lain.

Atas ialah kandungan terperinci Apa yang perlu dilakukan jika imej induk docker tidak boleh dipadamkan (dua kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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