Sau khi đọc các tài liệu tôi thấy mình hơi bối rối về cách tốt nhất để quản lý dữ liệu ứng dụng / dịch vụ hiệu quả.
Dường như có 3 lựa chọn:
- Đơn giản chỉ cần ánh xạ âm lượng đến thư mục máy chủ (tức là
-v
đối số chodocker run
) - Tạo một hình ảnh container docker cho dữ liệu (nghĩa là container riêng biệt và
--volumes-from
) - Tạo một khối lượng docker (tức là
docker volume create
)
Bây giờ, có vẻ như thực tiễn được chấp nhận là tùy chọn # 2, nhưng sau đó tôi tự hỏi mục đích của # 3 là gì.
Đặc biệt là làm thế nào để bạn xử lý chính xác các kịch bản này docker volume
và tốt hơn là sử dụng bộ chứa khối lượng dữ liệu hoặc điều này cho từng tình huống?
- Bạn cần dữ liệu ứng dụng trong một khối lượng riêng và / hoặc tầng lưu trữ trong máy chủ của bạn
- Sao lưu
- Khôi phục dữ liệu
btrfs scrub
trên đó để tìm và sửa các tệp bị hỏng. Tôi không chắc chắn cách thức hoạt động của công cụ dockerized, nhưng tôi đoán nó không bảo vệ chống thối dữ liệu, vì vậy tôi luôn cần khôi phục hoàn toàn nếu có điều gì đó xấu xảy ra thay vì chỉ khôi phục các tệp riêng lẻ. Một ý kiến khác cho rằng nó thêm một lớp trừu tượng khác, vì vậy nó làm chậm việc đọc và viết tệp hơn nữa. Tôi bằng cách nào đó không thấy được lợi thế của # 2 và # 3, nhưng tôi không có kinh nghiệm với docker, vì vậy điều này có thể thay đổi.