Rumah >Operasi dan penyelenggaraan >Docker >Bagaimana untuk melekapkan direktori tanpa memulakan semula docker

Bagaimana untuk melekapkan direktori tanpa memulakan semula docker

PHPz
PHPzasal
2023-04-19 17:25:521382semak imbas

Dengan populariti Docker, sejumlah besar aplikasi telah mula digunakan dalam bekas Docker. Kelebihan mudah alih dan pengasingan Docker meningkatkan kecekapan dan kestabilan penggunaan aplikasi. Walau bagaimanapun, disebabkan sifat pengasingan bekas Docker, kadangkala orang berasa sedikit tidak berdaya. Artikel ini akan memperkenalkan kaedah untuk melekapkan direktori tanpa memulakan semula bekas Docker.

Pertama, kita perlu memahami volum data Docker. Kelantangan data ialah mekanisme yang digunakan untuk menyimpan data dalam bekas Docker Ia boleh melekapkan direktori tempatan ke dalam bekas Docker supaya data dalam bekas boleh disimpan ke cakera setempat. Apabila memulakan bekas Docker, anda boleh menentukan direktori tempatan untuk dipasang, seperti yang ditunjukkan di bawah:

docker run -v /localdir:/containerdir image_name

di mana, /localdir ialah direktori tempatan, /containerdir ialah direktori dalam bekas, image_name ialah nama imej Docker.

Walau bagaimanapun, apabila kita perlu mengubah suai perhubungan pemasangan direktori, biasanya kita perlu memulakan semula bekas Docker. Ini akan membawa kepada peningkatan masa henti aplikasi dan menjejaskan pengalaman pengguna. Jadi, bagaimana untuk mengubah suai direktori pelekap tanpa memulakan semula bekas Docker?

Cara mudah ialah menggunakan perintah mount. Perintah mount boleh merealisasikan operasi pemasangan dan nyahlekap sistem fail Dengan menggunakannya, kami boleh menukar direktori pelekap tanpa memulakan semula bekas Docker. Langkah khusus adalah seperti berikut:

  1. Lihat status pemasangan bekas semasa:
docker inspect -f '{{json .Mounts}}' container_name

Di mana, container_name merujuk kepada nama bekas Docker .

Selepas melaksanakan arahan di atas, maklumat direktori pelekap dalam bekas akan dikembalikan formatnya seperti berikut:

[
   {
      "Type": "bind",
      "Source": "/var/data",
      "Destination": "/app/data",
      "Mode": "",
      "RW": true,
      "Propagation": "rprivate"
   }
]

di mana Type ialah jenis pelekap dan Source. ialah direktori tempatan , Destination ialah direktori dalam bekas dan RW mewakili kebenaran baca dan tulis.

  1. Nyahpasang direktori pelekap semasa:
mount --make-rprivate /var/data
umount /var/data

Dalam arahan di atas, pilihan --make-rprivate digunakan untuk menetapkan direktori kepada kebenaran peribadi untuk mengelak daripada menjejaskan yang lain proses mempunyai kesan. Perintah umount digunakan untuk menyahpasang direktori.

  1. Lekapkan direktori baharu:
mount --bind /new/data /var/data

Dalam arahan di atas, kami lekapkan direktori baharu ke direktori asal untuk menukar direktori .

Melalui langkah di atas, kami telah berjaya menukar direktori pelekap tanpa memulakan semula bekas Docker. Perlu diingatkan bahawa jika terdapat fail dalam direktori yang sedang digunakan, anda perlu menghentikan semua proses yang menduduki direktori sebelum pengubahsuaian untuk mengelakkan kehilangan data.

Docker menyediakan penyelesaian penggunaan kontena yang cekap dan mudah, tetapi dalam aplikasi sebenar, kita perlu memahami sepenuhnya ciri pengasingannya dan belajar menggunakan teknik yang berkaitan untuk menangani pelbagai masalah dengan lebih baik. Melalui pengenalan artikel ini, saya percaya anda telah menguasai kaedah untuk memasang direktori tanpa memulakan semula bekas Docker. Saya harap ia dapat membantu anda mengatasi senario aplikasi sebenar dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk melekapkan direktori tanpa memulakan semula docker. 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