Saya memeriksa bahwa data ini memang disimpan di boot2docker VM (dibuat oleh docker-machine) dan bukan di wadah, sehingga akan tetap ada.Namun "docker-machine restart" menghapus data khusus ini di vm.
Saya tidak dapat menemukan dokumentasi tentang apa yang terjadi. Saya menemukan satu posting forum yang menyebutkan bahwa data di / var/lib / docker akan dipertahankan, tetapi saya tidak dapat menemukan dokumen resmi yang menyatakan itu dan tampaknya juga aneh mengingat panduan penyimpanan persisten di atas tidak menggunakan jalur ini atau bahkan menyebutkan bahwa data anda akan dihapus.
Apakah ini diharapkan dan jika demikian apakah ada dokumentasi resmi di jalur yang benar untuk menyimpan data persisten?
Edit: menambahkan contoh senario yang gagal
$ docker-machine ssh altdocker@alt:~$ docker run -v /data:/var/lib/mysql --name mydata busybox sh -c "echo 'hello' > /var/lib/mysql/hello"docker@alt:~$ docker run --rm --volumes-from mydata busybox sh -c "cat /var/lib/mysql/hello"hellodocker@alt:~$ exit$ docker-machine restart altStarting VM...$ docker-machine ssh altdocker@alt:~$ docker run --rm --volumes-from mydata busybox sh -c "cat /var/lib/mysql/hello"cat: can't open '/var/lib/mysql/hello': No such file or directory
Saya tidak menggunakan boot2docker, tetapi jika / data dihapus saat reboot, di situlah volume Anda disimpan (docker run -v /data:/var/lib/mysql), jadi itu akan hilang.
Apa yang Anda lakukan juga menggabungkan dua pola berbeda untuk menangani persistensi volume. Untuk mendapatkan persistensi, kontainer dapat memasang volume dari lokasi tertentu pada sistem host (yang dianggap persisten), atau mereka dapat dikaitkan dengan wadah data, dan dipasang dengan --volumes-from. Kedengarannya seperti pendekatan sistem file host Tidak Sesuai untuk boot2docker, dan Anda harus menggunakan pola volume data (hanya).
Agaknya Anda harus membuat wadah data Anda dengan -v /var/lib/mysql, daripada -v /data:/var/lib/mysql.
Perhatikan bahwa saya menggunakan docker untuk Mac beta yang menggunakan vm xhyve.
Isi / var / lib / boot2docker akan bertahan antara mesin restarts.So jika Anda ingin file tertentu tersedia di vm Anda, letakkan di direktori ini.
Jika Anda ingin mereka dapat diakses di lokasi yang berbeda untuk menjalankan kontainer docker maka Anda dapat menambahkan yang berikut ke/var/lib/boot2docker / profile:
Jika Anda ingin menambahkan konfigurasi lain ke file sistem yang akan bertahan di antara vm restart seperti nilai tambahan di file host Anda, maka Anda dapat menambahkan perintah seperti di bawah ini ke / var / lib / boot2docker / profile: