นักเทียบท่า 1.9.0 ขึ้นไป
ใช้API ปริมาณ
docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command
ซึ่งหมายความว่ารูปแบบที่เก็บข้อมูลเท่านั้นจะต้องถูกทิ้งในความโปรดปรานของปริมาณใหม่
ที่จริงแล้วปริมาณ API นั้นเป็นวิธีที่ดีกว่าในการบรรลุรูปแบบของ data-container
หากคุณสร้างคอนเทนเนอร์ด้วย-v volume_name:/container/fs/path
Docker จะสร้างวอลลุ่มที่ตั้งชื่อโดยอัตโนมัติสำหรับคุณที่สามารถ:
- ถูกลงรายการผ่าน
docker volume ls
- ถูกระบุผ่าน
docker volume inspect volume_name
- สำรองข้อมูลเป็นไดเรกทอรีปกติ
- สำรองข้อมูลเหมือนก่อนผ่านการ
--volumes-from
เชื่อมต่อ
API ปริมาณใหม่เพิ่มคำสั่งที่มีประโยชน์ที่ช่วยให้คุณระบุห้อยปริมาณ:
docker volume ls -f dangling=true
แล้วลบออกด้วยชื่อ:
docker volume rm <volume name>
ในขณะที่ @mpugach ขีดเส้นใต้ในความคิดเห็นคุณสามารถกำจัดไดรฟ์ข้อมูลที่ห้อยอยู่ทั้งหมดด้วยซับในที่ดี:
docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune
นักเทียบท่า 1.8.x และต่ำกว่า
วิธีการที่ดูเหมือนว่าจะทำงานได้ดีที่สุดสำหรับการผลิตคือการใช้ข้อมูลที่เป็นภาชนะเท่านั้น
ภาชนะข้อมูลเท่านั้นที่ทำงานในภาพเปลือยและจริง ๆ แล้วไม่ทำอะไรเลยยกเว้นการเปิดเผยปริมาณข้อมูล
จากนั้นคุณสามารถเรียกใช้คอนเทนเนอร์อื่นเพื่อเข้าถึงไดรฟ์ข้อมูลคอนเทนเนอร์:
docker run --volumes-from data-container some-other-container command-to-execute
- ที่นี่คุณจะได้รับภาพรวมของวิธีการจัดเรียงตู้คอนเทนเนอร์ที่แตกต่างกัน
- ที่นี่มีข้อมูลเชิงลึกที่ดีเกี่ยวกับปริมาณการทำงาน
ในโพสต์บล็อกนี้มีคำอธิบายที่ดีของสิ่งที่เรียกว่าภาชนะที่เป็นรูปแบบไดรฟ์ซึ่งชี้แจงจุดหลักของการมีข้อมูลที่ภาชนะเท่านั้น
เอกสารนักเทียบท่าตอนนี้มีคำอธิบาย DEFINITIVE ของคอนเทนเนอร์เป็นรูปแบบโวลุ่ม / s
ต่อไปนี้เป็นขั้นตอนการสำรอง / กู้คืนสำหรับ Docker 1.8.x และต่ำกว่า
สำรอง:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
- --rm: ลบคอนเทนเนอร์เมื่อออก
- - ปริมาณ - จากข้อมูล: แนบกับไดรฟ์ข้อมูลที่ใช้ร่วมกันโดยภาชนะข้อมูล
- -v $ (pwd): / backup: ผูกติดไดเรกทอรีปัจจุบันลงในภาชนะ; เพื่อเขียนไฟล์ tar ไปยัง
- busybox: ภาพขนาดเล็กที่เรียบง่าย - ดีสำหรับการบำรุงรักษาอย่างรวดเร็ว
- tar cvf /backup/backup.tar / data: สร้างไฟล์ tar ที่ไม่มีการบีบอัดของไฟล์ทั้งหมดในไดเร็กทอรี / data
เรียกคืน:
# 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
นี่เป็นบทความดีๆจาก Brian Goff ที่ยอดเยี่ยมอธิบายว่าทำไมการใช้อิมเมจเดียวกันสำหรับคอนเทนเนอร์และที่เก็บข้อมูล