CHƯƠNG 04 · Volumes & Data Persistence•BÀI 16 / 80

Xử lý sự cố dữ liệu sau Docker Compose down

Thực hành tư duy điều tra trước khi sửa.

Nền tảng◷ 4 phút đọc4/4 trong chương

Nắm bản chất

Nếu developer báo mất database sau docker compose down rồi up --build, đừng lập tức kết luận mọi dữ liệu đã bị xóa. Trước tiên xác định Compose project name, image version, mount paths, docker volume ls và filesystem thực tế. Kiểm tra volume cũ có còn tồn tại nhưng Compose hiện dùng tên project khác hay không.

Không tiếp tục ghi dữ liệu mới lên vị trí có khả năng chứa dữ liệu cũ. Sao lưu trạng thái hiện tại rồi mới thử attach volume cũ vào một container phục hồi cô lập. Nếu trước đó DB chạy trong writable layer của container đã bị xóa, khả năng phục hồi có thể rất hạn chế.

Luồng hoạt động

Incident→inventory→mount inspect→recovery

Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?

Lệnh & cấu hình mẫu

docker compose ps -a
docker volume ls
docker volume inspect VOLUME_NAME
docker inspect DB_CONTAINER --format '{{json .Mounts}}'
docker compose config --services

Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.

Bài tập 10–20 phút

✳

Dùng lab volume có dữ liệu, đổi Compose project name để tái hiện hiện tượng “database trống”. So sánh các volume names trước và sau.

Lỗi dễ mắc

!

Tránh mọi lệnh prune/remove volumes trong lúc điều tra. Chụp evidence và đánh giá backup trước khi chạy các lệnh phá hủy.

Tự kiểm tra

Docker Compose `down` bình thường có tự xóa named volumes không?Xem đáp án ↗

Không, trừ các trường hợp/flags liên quan; down -v mới yêu cầu xóa volumes thuộc phạm vi tương ứng.

TÀI NGUYÊN ĐI KÈM

Học thêm qua lab

Bài học nền tảng có thể thực hiện trực tiếp bằng các lệnh trên; bảng tra cứu nhanh giúp ôn tập.

→ Mở bảng lệnh tra cứu nhanh
NGUỒN CHÍNH THỨC

Đối chiếu tài liệu gốc

Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.

Mở tài liệu chính thức ↗