Một khối lượng là một dữ liệu liên tục lưu trữ trong /var/lib/docker/volumes/...
Bạn có thể khai báo nó trong một Dockerfile, có nghĩa là mỗi lần một container được ghi từ các hình ảnh, âm lượng được tạo ra (trống) , ngay cả khi bạn không có bất kỳ tùy chọn -v
nào.
Bạn có thể khai báo trên thời gian chạy docker run -v [host-dir:]container-dir
.
kết hợp hai (VOLUME
+ docker run -v
) có nghĩa là bạn có thể gắn kết các nội dung của một thư mục máy chủ vào khối lượng của bạn vẫn kiên trì bởi các container trong /var/lib/docker/volumes/...
docker volume create tạo ra một khối lượng mà không cần phải xác định một Dockerfile và xây dựng một hình ảnh và chạy một container. Nó được sử dụng để nhanh chóng cho phép các thùng chứa khác gắn kết khối lượng nói trên.
Nếu bạn đã khăng khăng một số nội dung trong một thể tích, nhưng kể từ đó xóa các container (mà theo mặc định không xóa khối lượng liên quan của nó, trừ khi bạn đang sử dụng Docker rm -v), bạn có thể tái đính kèm nói khối lượng đến một container mới (tuyên bố cùng một khối lượng).
Xem "Docker - How to access a volume not attached to a container?".
Với khối lượng docker được tạo, điều này rất dễ dàng để gắn lại một ổ đĩa được đặt tên cho vùng chứa.
docker volume create --name aname
docker run -v aname:/apath --name acontainer
...
# modify data in /apath
...
docker rm acontainer
# let's mount aname volume again
docker run -v aname:/apath --name acontainer
ls /apath
# you find your data back!
Giả sử bạn sử dụng 'Dockerfile' với cờ' VOLUME' và '-v/path:/host_path /'. Nội dung của 'VOLUME' sẽ bị ghi đè bởi nội dung của'/host_path/'? – radium226
@ radium226 yes. – VonC
Nhờ bạn @VonC, tôi nghĩ rằng tôi nhận được nó :) Và nếu bạn làm một 'docker khối lượng tạo - tên my_volume' theo sau là một' docker run - volume-from my_volume', làm thế nào để bạn biết nơi mountpoint sẽ được? – radium226