VolumeContainer là thứ dùng một lần — dữ liệu thì không
Xoá một container và tạo lại y hệt: cùng image, cùng lệnh, cùng tên. Sổ sách vẫn mất. Tờ này chỉ ra chỗ dữ liệu thật sự nằm, và vì sao cùng một image mà một bên trả HTTP 200 còn bên kia trả HTTP 403.
Xoá một container, mất một sổ sách
Tờ 03 đã nói lớp ghi mất cùng container. Nhưng biết và nhìn thấy là hai chuyện khác nhau, nên hãy nhìn thấy nó một lần cho dứt điểm.
$ docker run -d --name sotay-mat alpine:3.22 sleep 600 195efffba4e6569415536cab04f2541e433dab45a61cafe3d3db825a56d36f55 $ docker exec sotay-mat sh -c 'echo "don hang 001: 250000d" > /data/sosach.txt' $ docker exec sotay-mat cat /data/sosach.txt don hang 001: 250000d
Dữ liệu có thật, đọc lại được. Bây giờ xoá container và tạo lại y hệt — cùng image, cùng lệnh, cùng tên.
$ docker rm -f sotay-mat sotay-mat $ docker run -d --name sotay-mat alpine:3.22 sleep 600 cf2cdc49f7a50d96f4c58b5eaa2e211b4ee8b41bdb09b093f836e9504c17ffc5 $ docker exec sotay-mat cat /data/sosach.txt cat: can't open '/data/sosach.txt': No such file or directory (ma thoat: 1)
Đây là thiết kế. Container được làm ra để vứt đi và dựng lại — Tờ 01 đã nói vậy ngay từ đầu. Vấn đề là dữ liệu người dùng thì không được vứt đi. Bài này nói về chỗ để dữ liệu ở lại.
Ba kiểu gắn, ba chỗ dữ liệu thật sự nằm
Docker cho ba cách đưa một thư mục từ ngoài vào container. Khác biệt duy nhất giữa chúng là dữ liệu nằm ở đâu trên máy chủ — bên trong container thì cả ba trông y như nhau.
| Kiểu | Dữ liệu nằm ở | Ai quản lý | Sống sót khi xoá container |
|---|---|---|---|
| Volume có tên | /var/lib/docker/volumes/<tên>/_data | Docker | Có |
| Bind mount | Đường dẫn bất kỳ bạn chỉ định | Bạn | Có |
| tmpfs | RAM của máy chủ | Nhân Linux | Không |
Quy tắc chọn gọn trong ba dòng: dữ liệu của ứng dụng thì dùng volume có tên; mã nguồn lúc đang lập trình thì dùng bind mount; thứ không được chạm vào đĩa thì dùng tmpfs.
Phần còn lại của tờ này chưa mở công khai
Phía sau ranh giới này còn 9 mục · 5 bản vẽ tương tác · 9 khối đầu cuối chụp từ máy thật · phiếu nghiệm thu có chấm ở máy chủ. Phần bạn vừa đọc là mở đầu đầy đủ, không cắt giữa câu.
- Docker volume
- Bind mount
- tmpfs mount
- Docker Compose
- Sao lưu dữ liệu
- Quyền hệ thống tệp
Nền tảng không có giỏ hàng: muốn học sớm cả khoá Docker từ số 0, bạn nhắn tin để hai bên trao đổi trực tiếp. Đầu mối: technical@techshield.vn. Đã có quyền rồi thì đăng nhập để mở tiếp.