1. Dữ liệu trong Docker gồm 2 loại
| Loại dữ liệu | Đặc điểm | Ví dụ |
|---|
| Ephemeral (tạm thời) | Gắn với vòng đời container, bị mất khi container bị xóa | Mã nguồn ứng dụng, log tạm |
| Persistent (bền vững) | Tồn tại độc lập với container | Dữ liệu database, file người dùng |
2. Dữ liệu tạm thời: Non-Persistent Storage
- Được gọi là local storage, graph driver storage, hoặc snapshot storage
- Lưu ở:
- Linux:
/var/lib/docker/<driver> (ví dụ: overlay2)
- Windows:
C:\ProgramData\Docker\windowsfilter\
- Tự động tạo cùng container và bị xoá khi container xoá
3. Dữ liệu bền vững: Persistent Storage qua Volumes
- Volume sống độc lập khỏi container
- Cho phép nâng cấp container mà không mất dữ liệu
- Dữ liệu được gắn tại 1 thư mục cụ thể trong container
## Dữ liệu trong volume được mount tại:
/var/code ←→ Volume Docker
4. Volume là đối tượng chính thức (First-class object)
- Có thể thao tác riêng biệt qua Docker CLI/API
- Lưu ở:
- Linux:
/var/lib/docker/volumes/
- Windows:
C:\ProgramData\Docker\volumes
5. Volume hỗ trợ 3 loại storage driver
| Loại Driver | Mô tả | Ví dụ |
|---|
| Block storage | Hiệu suất cao, truy cập ngẫu nhiên | Amazon EBS, OpenStack Cinder |
| File storage | Dễ chia sẻ qua NFS/SMB | NFS, Azure File, Amazon EFS |
| Object storage | Dữ liệu lớn, ít thay đổi | Amazon S3, Ceph, MinIO |
6. Volume vs Bind Mount
| Đặc điểm | Volume | Bind Mount |
|---|
| Cấu hình đơn giản | 1 | |
| Dễ di chuyển giữa host | 1 | |
| Gắn với đường dẫn host cụ thể | | 1 |
| Docker quản lý hoàn toàn | 1 | |
Tổng kết
- Là phần không thể thiếu trong mô hình Container + Data
- Có thể dùng Volume cho DB như MySQL, PostgreSQL, v.v.