Docker 1.9.0 trở lên
Sử dụng API khối lượng
docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command
Điều này có nghĩa là mẫu container chỉ chứa dữ liệu phải được bỏ qua theo hướng có lợi cho khối lượng mới.
Trên thực tế, API khối lượng chỉ là một cách tốt hơn để đạt được mô hình chứa dữ liệu.
Nếu bạn tạo một thùng chứa với -v volume_name:/container/fs/path
Docker sẽ tự động tạo một khối lượng được đặt tên cho bạn, có thể:
- Được liệt kê thông qua
docker volume ls
- Được xác định thông qua
docker volume inspect volume_name
- Được sao lưu như một thư mục bình thường
- Sao lưu như trước thông qua một
--volumes-from
kết nối
API khối lượng mới thêm một lệnh hữu ích cho phép bạn xác định khối lượng lơ lửng:
docker volume ls -f dangling=true
Và sau đó loại bỏ nó thông qua tên của nó:
docker volume rm <volume name>
Khi @mpugach gạch chân trong các bình luận, bạn có thể thoát khỏi tất cả các khối lượng lơ lửng với một lớp lót đẹp:
docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune
Docker 1.8.x trở xuống
Cách tiếp cận có vẻ hoạt động tốt nhất cho sản xuất là sử dụng chỉ chứa dữ liệu .
Container chỉ chứa dữ liệu được chạy trên hình ảnh barebones và thực tế không làm gì ngoài việc để lộ một khối lượng dữ liệu.
Sau đó, bạn có thể chạy bất kỳ vùng chứa nào khác để có quyền truy cập vào khối lượng vùng chứa dữ liệu:
docker run --volumes-from data-container some-other-container command-to-execute
- Ở đây bạn có thể có được một hình ảnh tốt về cách sắp xếp các container khác nhau.
- Ở đây có một cái nhìn sâu sắc tốt về cách khối lượng làm việc.
Trong bài đăng trên blog này có một mô tả hay về cái gọi là container dưới dạng mẫu âm lượng , điều này làm rõ điểm chính của việc chỉ chứa các dữ liệu .
Tài liệu Docker hiện có mô tả DEFINITIVE của container dưới dạng khối lượng / s .
Sau đây là quy trình sao lưu / khôi phục cho Docker 1.8.x trở xuống.
SAO LƯU:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
- --rm: loại bỏ container khi nó thoát
- --volume-from DATA: đính kèm vào các khối được chia sẻ bởi bộ chứa DATA
- -v $ (pwd): / backup: bind mount thư mục hiện tại vào container; để ghi tập tin tar vào
- busybox: một hình ảnh nhỏ đơn giản hơn - tốt cho việc bảo trì nhanh chóng
- tar cvf /backup/backup.tar / data: tạo tệp tar không nén của tất cả các tệp trong thư mục / data
NHÀ HÀNG:
# 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
Dưới đây là một bài viết hay từ Brian Goff xuất sắc giải thích lý do tại sao sử dụng cùng một hình ảnh cho một container và một container dữ liệu là tốt.