Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 9379|Jawab: 0

File atau folder tidak ada saat volume Docker dipasang

[Salin tautan]
Diposting pada 08/11/2021 09.20.35 | | |
Latar

Docker Volume memungkinkan kita untuk secara dinamis memasang beberapa file (seperti file konfigurasi) untuk menimpa file asli dalam gambar saat memulai kontainer Docker, tetapi apa yang terjadi jika kita memasang folder atau file yang belum ada di host ke kontainer? LZ mengalami masalah seperti itu dalam pekerjaannya, jadi dia mempraktikkannya sendiri dan mencatat hasil eksperimen sebagai berikut:

Pemasangan folder

Perilaku Docker pada pemasangan folder seragam, sebagai berikut:

  • Jika folder tidak ada, folder dibuat terlebih dahulu (atau secara rekursif jika folder multi-level)
  • Menimpa konten folder dalam wadah dengan konten folder di host


Rinciannya adalah sebagai berikut:

Folder di host ada dan tidak kosong

tuan rumah
wadah
Hasil pemasangan
Folder A yang tidak kosong adaFolder B yang tidak adaBuat folder B di contanier terlebih dahulu, lalu salin semua file di folder A ke B
Folder A yang tidak kosong adaFolder B yang tidak kosong adaPertama, kosongkan isi asli folder Cina wadah B, lalu salin salinan Cina A ke B

Terlepas dari apakah folder B dalam kontainer ada, A akan sepenuhnya menimpa konten B

Folder di host ada, tetapi kosong

tuan rumah
wadah
Hasil pemasangan
Kosongkan folder A yang adaFolder B yang tidak kosong adaIsi folder Cina wadah B dikosongkan

Konten folder yang sesuai dalam wadah dikosongkan

Folder host tidak ada

tuan rumah
wadah
Hasil pemasangan
Folder A yang tidak adaFolder B yang tidak kosong adaBuat folder A di host, dan isi folder Cina kontainer B dikosongkan
Folder A/B/C yang tidak adaFolder B yang tidak kosong adaBuat folder A/B/C pada host, dan isi folder Cina kontainer B dikosongkan

Konten folder yang sesuai dalam wadah dikosongkan

ringkasan

Folder host pasti akan menimpa folder Cina kontainer:

tuan rumah
wadah
Hasil pemasangan
Folder tidak ada/folder ada tetapi kosongFolder tidak ada/ada tetapi kosong/ada dan tidak kosongkontainer potongan Cina ditutup (dikosongkan)
Folder ada dan tidak kosongFolder tidak ada/ada tetapi kosong/ada dan tidak kosongkonten folder Cina kontainer ditimpa (konten asli dikosongkan, dan konten folder di host ditimpa)

Pemasangan file

Perbedaan terbesar antara pemasangan file dan pemasangan folder adalah:

  • Docker melarang memasang file yang tidak ada di host ke file yang sudah ada di kontainer
  • Pemasangan file tidak berpengaruh pada file lain di bawah folder yang sama

Selain itu, perilaku timpanya konsisten dengan pemasangan folder, yaitu:

  • Menimpa isi file dalam wadah dengan konten file di host


Rinciannya adalah sebagai berikut:

tuan rumah

tuan rumah
wadah
Hasil pemasangan
File yang tidak ada configA.jsDokumen yang sudah ada congfigB.jsKesalahan, Apakah Anda mencoba memasang direktori ke file (atau sebaliknya)? Periksa apakah jalur host yang ditentukan ada dan merupakan jenis yang diharapkan. Ini menghasilkan dua direktori kosong configA.js dan configB.js di host secara bersamaan, tetapi kontainer tidak dapat memulai

tuan rumah

tuan rumah
wadah
Hasil pemasangan
Menyajikan file configA.jsMenyajikan file congfigB.jsitem Cina kontainer configB.js tetap sama, tetapi isi file ditimpa oleh isi congfigA.js
Menyajikan file configA.jsFile yang tidak ada congfigB.jsFile baru configB.js dalam wadah dengan isi file configA.js tetap tidak berubah configB.js semua file lain di bawah file

ringkasan

File pada host akan selalu menimpa folder Cina kontainer

tuan rumah
wadah
Hasil pemasangan
File yang tidak adaDokumen yang sudah adaTindakan yang dilarang
Dokumen yang adaFile yang tidak ada / file yang sudah adaTambahkan/timpa (membuat direktori jika tidak ada)

kesimpulan

Pemasangan folder

  • Jika Anda mengizinkan folder yang tidak ada atau folder kosong dipasang di dalam kontainer, folder yang sesuai dalam kontainer akan dikosongkan
  • Melampirkan folder yang tidak kosong ke kontainer akan menimpa folder asli dalam kontainer

Pemasangan file

  • Dilarang memasang file yang tidak ada pada file yang sudah ada di wadah
  • File yang ada akan ditimpa saat dilampirkan ke wadah, dan jika file tidak ada, file tersebut akan dibuat

Skenario aplikasi

  • Dari analisis di atas, dapat dilihat bahwa pemasangan folder digunakan untuk menimpa file di seluruh folder, sehingga dapat digunakan ketika sejumlah besar file perlu dipasang ke dalam wadah, selain itu, jika folder kosong atau folder yang tidak ada dipasang, umumnya digunakan secara terbalik: yaitu, setelah kontainer dimulai, beberapa file (seperti log) dapat dihasilkan di bawah folder titik pemasangan di wadah, dan saat ini, dapat langsung dilihat di folder pada host yang sesuai.
  • Pemasangan file sering digunakan untuk memasang file konfigurasi untuk memodifikasi konfigurasi default secara dinamis saat runtime karena hanya menimpa satu file tanpa memengaruhi file lain di folder yang sama dalam kontainer.

Ditransfer dari:Login hyperlink terlihat.

(Akhir)




Mantan:Elasticsearch menggunakan elasticdump untuk mencadangkan dan memigrasikan data
Depan:Solusi pengecualian kesalahan Docker POI
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com