Rumah >Operasi dan penyelenggaraan >Docker >Adakah data akan hilang selepas bekas docker dimulakan semula?

Adakah data akan hilang selepas bekas docker dimulakan semula?

WBOY
WBOYasal
2022-06-17 10:41:0011231semak imbas

Data akan hilang selepas bekas docker dimulakan semula, anda boleh menggunakan volum atau "bekas data" untuk mencapai kegigihan data Selepas bekas ditutup, anda boleh menggunakan "-v" atau "--. volumes-from" untuk menggunakan semula sebelumnya Untuk data, docker juga boleh melekapkan direktori cakera hos untuk menyimpan data secara kekal.

Adakah data akan hilang selepas bekas docker dimulakan semula?

Persekitaran pengendalian tutorial ini: sistem linux7.3, docker versi 19.03, komputer Dell G3.

Adakah data akan hilang selepas bekas docker dimulakan semula

Ya, apabila anda menggunakan docker untuk menggunakan aplikasi web atau pangkalan data mysql, anda akan mendapati bahawa selepas bekas itu dimulakan semula, log? atau pangkalan data yang dijana semasa menjalankan kontena Data akan dikosongkan.

Jika anda mahukan data berterusan, anda perlu menggunakan volum atau bekas data, supaya anda boleh menggunakan semula data sebelumnya melalui -v atau --volumes-daripada selepas bekas ditutup. Docker memasang direktori cakera hos untuk menyimpan data secara kekal.

Laksanakan Volume Docker apabila mencipta bekas

Gunakan arahan docker run untuk menjalankan bekas Docker, gunakan imej ubuntu/nginx dan lekapkan direktori tempatan /tmp /source to Container directory/tmp/destination

docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash

mencipta bekas Docker berdasarkan imej ubuntu/nginx. Nama bekas yang ditentukan adalah ujian, ditentukan oleh pilihan ––nama.

Volume Docker ditentukan oleh pilihan ––volume (boleh disingkat sebagai -v) Direktori /tmp/source hos sepadan dengan direktori /tmp/destination dalam bekas.

Lihat Kelantangan Docker

Gunakan arahan pemeriksaan docker untuk melihat maklumat terperinci bekas Docker:

docker inspect --format='{{json .Mounts}}'test | python -m json.tool[{"Destination": "/tmp/destination",
"Mode": "","Propagation": "","RW": true,"Source": "/tmp/source","Type": "bind"}]

Gunakan format –– Pilihan melihat maklumat bekas yang diperlukan. .Mount ialah maklumat Docker Volume kontena.

python -m json.tool boleh memformat dan memaparkan rentetan json output. Sumber mewakili direktori pada hos, iaitu /tmp/source . Destinasi ialah direktori dalam bekas, iaitu /tmp/destination.

Fail tempatan boleh disegerakkan ke bekas

Buat fail hello.txt baharu dalam direktori local/tmp/source

touch /tmp/source/hello.txtls /tmp/source/hello.txt

hello. fail txt kelihatan dalam direktori bekas/tmp/destination/

Gunakan arahan docker exec untuk melaksanakan arahan dalam bekas.

docker exectest ls /tmp/destination/hello.txt

Jadi pengubahsuaian pada direktori /tmp/source/ pada mesin hos boleh disegerakkan ke direktori kontena /tmp/destination/.

Fail bekas boleh disegerakkan ke mesin hos

Buat fail world.txt baharu dalam direktori container/tmp/destination

docker exec test touch /tmp/destination/world.txtdocker exec test ls /tmp/destination/hello.txtworld.txt

world.txt Fail kelihatan dalam direktori hos/tmp/source/

ls /tmp/source/hello.txt world.txt

Pembelajaran yang disyorkan: "video docker tutorial"

Atas ialah kandungan terperinci Adakah data akan hilang selepas bekas docker dimulakan semula?. 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