Docker 1.9.0 dan lebih tinggi
Gunakan API volume
docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command
Ini berarti bahwa pola wadah hanya-data harus ditinggalkan demi volume baru.
Sebenarnya volume API hanyalah cara yang lebih baik untuk mencapai apa yang menjadi pola data-container.
Jika Anda membuat wadah dengan -v volume_name:/container/fs/path
Docker secara otomatis akan membuat volume bernama untuk Anda yang dapat:
- Daftarkan diri Anda melalui
docker volume ls
- Diidentifikasi melalui
docker volume inspect volume_name
- Dicadangkan sebagai direktori normal
- Dicadangkan seperti sebelumnya melalui
--volumes-from
koneksi
API volume baru menambahkan perintah yang berguna yang memungkinkan Anda mengidentifikasi volume yang menggantung:
docker volume ls -f dangling=true
Dan kemudian hapus melalui namanya:
docker volume rm <volume name>
Sebagai @mpugach menggarisbawahi dalam komentar, Anda dapat menyingkirkan semua volume yang menggantung dengan one-liner yang bagus:
docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune
Docker 1.8.x dan di bawah
Pendekatan yang tampaknya bekerja paling baik untuk produksi adalah dengan menggunakan wadah data saja .
Wadah data saja dijalankan pada gambar barebones dan sebenarnya tidak melakukan apa-apa selain mengekspos volume data.
Kemudian Anda bisa menjalankan wadah lain untuk memiliki akses ke volume wadah data:
docker run --volumes-from data-container some-other-container command-to-execute
- Di sini Anda bisa mendapatkan gambaran yang baik tentang bagaimana mengatur wadah yang berbeda.
- Di sini ada wawasan yang bagus tentang cara kerja volume.
Dalam posting blog ini ada deskripsi yang baik tentang wadah yang disebut sebagai pola volume yang menjelaskan titik utama memiliki data wadah saja .
Dokumentasi Docker sekarang memiliki deskripsi DEFINITIF dari wadah sebagai pola volume .
Berikut ini adalah prosedur pencadangan / pemulihan untuk Docker 1.8.x dan di bawah ini.
CADANGAN:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
- --rm: lepaskan wadah saat keluar
- --volumes-from DATA: lampirkan volume yang dibagikan oleh wadah DATA
- -v $ (pwd): / backup: bind mount direktori saat ini ke dalam wadah; untuk menulis file tar
- busybox: gambar kecil yang lebih sederhana - bagus untuk perawatan cepat
- tar cvf /backup/backup.tar / data: membuat file tar terkompresi dari semua file di direktori / data
MENGEMBALIKAN:
# Create a new data container
$ sudo docker run -v /data -name DATA2 busybox true
# untar the backup files into the new container᾿s data volume
$ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
data/
data/sven.txt
# Compare to the original container
$ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busybox ls /data
sven.txt
Berikut ini adalah artikel bagus dari Brian Goff yang luar biasa yang menjelaskan mengapa sebaiknya menggunakan gambar yang sama untuk wadah dan wadah data.