CodeGym /Các khóa học /Docker SELF /Sao lưu và khôi phục dữ liệu

Sao lưu và khôi phục dữ liệu

Docker SELF
Mức độ , Bài học
Có sẵn

4.1 Phương pháp cơ bản để backup và khôi phục dữ liệu

Nếu bạn đã từng mất dữ liệu quan trọng, chắc chắn bạn hiểu tại sao backup lại quan trọng như vậy. Trong bài giảng này, tụi mình sẽ xem qua các phương pháp và công cụ khác nhau để tạo backup và khôi phục dữ liệu trong Docker, bao gồm volumes và thư mục liên kết.

Phương pháp cơ bản để backup và khôi phục dữ liệu

  1. Backup volumes của Docker
  2. Sử dụng utility tar để backup
  3. Backup cơ sở dữ liệu bên trong container
  4. Khôi phục dữ liệu từ backup

4.2 Sao lưu volume Docker

Volumes trong Docker cung cấp một cách tiện lợi để lưu trữ dữ liệu ngoài các container. Để tạo sao lưu volumes, bạn có thể sử dụng nhiều cách khác nhau.

Ví dụ sử dụng lệnh docker run để sao lưu volume

Tạo sao lưu volume

Tạo một container gắn kết volume và sử dụng công cụ tar để tạo file nén chứa dữ liệu:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf 
/backup/my_volume_backup.tar.gz -C /data .

Trong ví dụ này, nội dung của volume my_volume được nén vào file my_volume_backup.tar.gz, và file này được lưu trong thư mục /path/to/backup trên host.

Ví dụ khôi phục volume từ bản sao lưu

Khôi phục dữ liệu vào volume

Tạo một container gắn kết volume cùng với thư mục chứa bản sao lưu và sử dụng công cụ tar để giải nén dữ liệu:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf 
/backup/my_volume_backup.tar.gz -C /data

Trong ví dụ này, dữ liệu từ file nén my_volume_backup.tar.gz được giải nén vào volume my_volume.

4.3 Sử dụng utility tar cho backup

Utility tar là công cụ mạnh mẽ để tạo backup và phục hồi dữ liệu. Nó có thể được sử dụng cả bên trong container và trên hệ thống host.

Ví dụ tạo backup dữ liệu trong container

Chạy container với dữ liệu cần thiết và tạo file archive bằng tar:

Terminal

docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .

Trong ví dụ này, dữ liệu từ thư mục /data bên trong container my_container được đóng gói vào file my_container_backup.tar.gz.

Ví dụ phục hồi dữ liệu từ archive

Chạy container và sử dụng tar để giải nén dữ liệu từ file archive:

Terminal

docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data

4.4 Sao lưu cơ sở dữ liệu trong container

Đối với cơ sở dữ liệu, thường sử dụng các công cụ chuyên dụng để sao lưu và phục hồi.

Ví dụ sao lưu cơ sở dữ liệu PostgreSQL

Sử dụng tiện ích pg_dump để tạo sao lưu cơ sở dữ liệu:

Terminal

docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql

Trong ví dụ này, cơ sở dữ liệu mydb được xuất ra file mydb_backup.sql.

Ví dụ phục hồi cơ sở dữ liệu PostgreSQL

Sử dụng tiện ích psql để phục hồi cơ sở dữ liệu từ sao lưu:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb

4.5 Khôi phục dữ liệu từ backup

Khôi phục dữ liệu — là quá trình lấy lại dữ liệu từ những backup đã tạo trước đó.

Ví dụ khôi phục dữ liệu từ backup volume

Sử dụng lệnh docker run để lấy lại dữ liệu trong volume:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data

Ví dụ khôi phục database MySQL

Sử dụng utility mysqldump để tạo backup cho database:

Terminal

docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql

Sử dụng utility mysql để khôi phục database:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION