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.
Persekitaran pengendalian tutorial ini: sistem linux7.3, docker versi 19.03, komputer Dell G3.
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!