Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Bài 23. Backup Docker và Container Environment

ICT

1. Hiểu đúng về container trước khi nói đến backup

Một sai lầm rất phổ biến:

“Backup container”

Trong triết lý container:

  • Container là tạm thời

  • Có thể xóa và tạo lại bất kỳ lúc nào

  • Không được thiết kế để lưu dữ liệu lâu dài

📌 Vì vậy:

Không backup container.
Backup những gì container phụ thuộc để chạy.


2. Container Environment gồm những gì?

Một môi trường Docker / container hoàn chỉnh gồm:

  • Docker Engine

  • Docker configuration

  • Image (có thể pull/build lại)

  • Container (tạm thời)

  • Volume (dữ liệu)

  • Cấu hình orchestration

  • Biến môi trường

  • Network logic

Backup phải tập trung vào những thành phần không thể tái tạo.


3. Những gì BẮT BUỘC phải backup

3.1. Docker configuration

  • /etc/docker/daemon.json

  • Custom storage driver config

  • Docker registry config (nếu có)

📌 Ảnh hưởng đến cách Docker vận hành.


3.2. Docker Compose / Orchestration files

  • docker-compose.yml

  • .env

  • Override files

  • Kubernetes YAML (nếu dùng)

📌 Đây là logic triển khai, quan trọng hơn container.


3.3. Docker Volumes (quan trọng nhất)

Volumes chứa:

  • Database

  • File upload

  • Cache quan trọng

  • Persistent data

Ví dụ:

  • /var/lib/docker/volumes/*/_data

📌 Mất volume = mất dữ liệu nghiệp vụ.


3.4. Application data ngoài container

  • Mounted directory

  • Shared storage

  • Bind mount data


4. Những gì RẤT NÊN backup

4.1. Image build logic

  • Dockerfile

  • Build script

  • Custom base image info

📌 Không backup image binary, chỉ backup cách tạo image.


4.2. Runtime config

  • Environment variables

  • Secret mapping

  • Port mapping


5. Những gì KHÔNG cần backup

  • Container filesystem

  • Docker image đã pull

  • Cache tạm thời

  • Log container (trừ yêu cầu audit)

📌 Những thứ này có thể tái tạo.


6. Backup Docker Volume đúng cách

6.1. Nguyên tắc

  • Backup khi dữ liệu nhất quán

  • Tránh backup khi DB đang ghi mạnh

  • Ưu tiên logical backup cho database


6.2. Chiến lược khuyến nghị

  • Database trong container:

    • Logical dump (mysqldump, pg_dump)

    • Lưu ngoài volume

  • File data:

    • Rsync / tar volume data

📌 Không snapshot volume DB đang ghi nếu không quiesce.


7. Restore Docker Environment đúng cách

Trình tự khuyến nghị:

  1. Cài Docker Engine

  2. Restore Docker config

  3. Restore compose / orchestration file

  4. Restore volume data

  5. Pull/build image

  6. Up container

  7. Test ứng dụng

📌 Không restore volume trước khi biết container dùng volume đó như thế nào.


8. Docker trong mô hình HA và DR

Trong hệ thống nhiều node:

  • Container có thể chạy lại ở node khác

  • Dữ liệu phải độc lập node

Backup giúp:

  • Dựng lại node mới

  • Chuyển workload

  • Phục hồi nhanh khi node chết


9. Sai lầm phổ biến khi backup Docker

  • Backup toàn bộ /var/lib/docker

  • Backup container filesystem

  • Chỉ backup image, quên volume

  • Không ghi lại biến môi trường


10. Checklist backup Docker / Container

Bắt buộc

  • Docker config

  • Compose / YAML

  • Volume data

  • Database logical backup

Rất nên

  • Dockerfile

  • Env file

  • Network config


 

Container được sinh ra để bị xóa.
Dữ liệu và cấu hình mới là thứ phải sống sót.

Một chiến lược backup Docker đúng:

  • Không backup container

  • Backup môi trường để container có thể tái sinh

  • Backup dữ liệu để nghiệp vụ không mất