Docker 1.9.0 ve üstü
Birim API'sını kullan
docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command
Bu, yalnızca veri içeren kap modelinin yeni birimler lehine terk edilmesi gerektiği anlamına gelir.
Aslında birim API, veri taşıyıcı modelini elde etmenin daha iyi bir yoludur.
-v volume_name:/container/fs/path
Docker ile bir kap oluşturursanız, sizin için otomatik olarak adlandırılmış bir birim oluşturur:
- Aracılığıyla listelenecek
docker volume ls
- İle tanımlanmalı
docker volume inspect volume_name
- Normal bir dizin olarak yedeklendi
- Bir
--volumes-from
bağlantı üzerinden eskisi gibi yedeklendi
Yeni birim API'si, sarkan hacimleri belirlemenizi sağlayan kullanışlı bir komut ekler:
docker volume ls -f dangling=true
Ve ardından adıyla kaldırın:
docker volume rm <volume name>
@Mpugach yorumlarda altını çizdiği gibi, tüm sarkan hacimlerden hoş bir tek astarla kurtulabilirsiniz:
docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune
Docker 1.8.x ve altı
Üretim için en iyi sonuç veren yaklaşım, yalnızca veri içeren bir kap kullanmaktır .
Yalnızca veri kapsayıcısı bir barebone görüntüsünde çalıştırılır ve gerçekte bir veri hacmini göstermekten başka bir şey yapmaz.
Ardından veri kabı hacimlerine erişmek için başka bir kapsayıcı çalıştırabilirsiniz:
docker run --volumes-from data-container some-other-container command-to-execute
- Burada farklı kapların nasıl düzenleneceğine dair iyi bir resim elde edebilirsiniz.
- Burada hacimlerin nasıl çalıştığına dair iyi bir fikir var.
Olarak bu blog yazı olarak adlandırılan iyi bir açıklama yoktur birim desen olarak kabın sahip ana nokta açıklık verileri sadece konteyner .
Docker dokümantasyonunda, artık kabın hacim / s örüntüsü olarak TANIMLI açıklaması bulunmaktadır .
Docker 1.8.x ve altı için yedekleme / geri yükleme prosedürü aşağıdadır.
DESTEK OLMAK:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
- --rm: kap çıkarken çıkarın
- --volumes-from DATA: DATA kabı tarafından paylaşılan birimlere ekleyin
- -v $ (pwd): / backup: geçerli dizini konteynere bağla; tar dosyasını
- busybox: küçük ve basit bir görüntü - hızlı bakım için iyi
- tar cvf /backup/backup.tar / data: / data dizinindeki tüm dosyaların sıkıştırılmamış bir tar dosyasını oluşturur
ONARMAK:
# 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
İşte mükemmel Brian Goff'un aynı görüntüyü bir kapsayıcı ve veri kapsayıcısı için neden kullanmanın iyi olduğunu açıklayan güzel bir makale .