Saya menggunakan Docker Toolbox di OSX.
Saya telah membuat wadah volume data untuk menyimpan data persisten: https://docs.docker.com/userguide/dockervolumes/#creating-and-mounting-a-data-volume-container .
Saya memeriksa bahwa data ini memang disimpan di boot2docker VM (dibuat oleh docker-machine) dan bukan pada wadah, sehingga akan tetap ada. Namun "docker-machine restart" menghapus data khusus ini pada vm.
Saya tidak dapat menemukan dokumentasi tentang apa yang terjadi. Saya menemukan satu posting forum yang menyebutkan bahwa data di / var / lib / docker akan disimpan, tetapi saya tidak dapat menemukan dokumen resmi yang menyatakan itu dan juga aneh karena panduan penyimpanan yang 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?
Sunting: Menambahkan contoh senario yang gagal
$ docker-machine ssh alt
docker@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"
hello
docker@alt:~$ exit
$ docker-machine restart alt
Starting VM...
$ docker-machine ssh alt
docker@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 terhapus saat reboot, disitulah 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 kegigihan, kontainer dapat memasang volume dari lokasi yang ditentukan pada sistem host (yang dianggap persisten), atau kontainer tersebut dapat dikaitkan dengan wadah data, dan dipasang bersama
--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
, bukannya-v /data:/var/lib/mysql
.sumber
Perhatikan bahwa saya menggunakan buruh pelabuhan untuk mac beta yang menggunakan xhyve vm.
Isi / var / lib / boot2docker akan tetap ada di antara restart mesin. Jadi jika Anda ingin file-file tertentu tersedia di vm Anda, taruh di direktori ini.
Jika Anda ingin mereka dapat diakses di lokasi yang berbeda untuk menjalankan wadah buruh pelabuhan maka Anda dapat menambahkan yang berikut ke / var / lib / boot2docker / profil:
Jika Anda ingin menambahkan konfigurasi lain ke file sistem yang akan bertahan di antara vm restart seperti nilai tambahan dalam file host Anda, maka Anda dapat menambahkan perintah seperti di bawah ini ke / var / lib / boot2docker / profile:
Semoga ini bisa membantu
sumber