Hiện nay, Docker (Phần mềm ảo hóa container) được nhiều người sử dụng vì sự gọn nhẹ, tiện lợi. Thông qua các Container có sẵn, Docker cung cấp cách để xây dựng, phát triển và chạy các ứng dụng một cách dễ dàng. Trong bài viết dưới đây, Vietnix sẽ hướng dẫn bạn cách Dump Database từ Container trên Docker bằng dịch vụ Mysql/Mariadb.
Cách Dump Database từ Container chi tiết
Có khá nhiều cách Dump Database từ Container trên Docker, bạn có thể sử dụng dòng lệnh hoặc các công cụ hỗ trợ. Dưới đây là phương pháp phổ biến và linh hoạt nhất, gồm 2 bước đơn giản.
![Hướng dẫn cách Dump Database từ Container trên Docker hiệu quả 7 Cách Dump Database từ Container chi tiết](https://static-xf1.vietnix.vn/wp-content/uploads/2024/07/Dump-Database-tu-Container-tren-Docker.jpg)
Bước 1: Truy cập vào Container Database
Trước tiên, bạn phải thực hiện SSH vào VPS và cần truy cập vào đúng Container chứa Database (cơ sở dữ liệu) cần Dump (sao lưu). Cụ thể các bước như sau:
- Xác định Container ID của dịch vụ Mysql/Mariadb: do lúc này toàn bộ các Container trên VPS sẽ xuất hiện vì vậy bạn cần tìm chính xác Container ID của Mysql/Mariadb.
![Hướng dẫn cách Dump Database từ Container trên Docker hiệu quả 8 Tìm đúng Container chứa Database cần Dump](https://static-xf1.vietnix.vn/wp-content/uploads/2024/07/Tim-dung-Container-chua-Database-can-Dump.webp)
- Tiếp đến hãy truy cập Container ID của dịch vụ Mysql/Mariadb.
![Hướng dẫn cách Dump Database từ Container trên Docker hiệu quả 9 Truy cập Container ID của Mysql/Mariadb](https://static-xf1.vietnix.vn/wp-content/uploads/2024/07/Truy-cap-Container-ID-cua-Mysql-Mariadb.webp)
- Tiến hành Dump Database với lệnh:
msqldump --opt -u user_db -p name_db > Database_name.sql
Trong đó:
- user_db: Tên người dùng để đăng nhập vào cơ sở dữ liệu (User của Database).
- Name_db : Tên cơ sở dữ liệu cần xuất (Tên Database).
- Database_name.sql: Đặt tên cho File dữ liệu khi Dump ra.
Bước 2: Copy dữ liệu từ Container về máy chủ (Server)
Thực hiện lệnh “exit” để thoát ra khỏi Container. Sau đó, bạn copy thư mục Database ở Container về máy chủ với lệnh sau:
![Hướng dẫn cách Dump Database từ Container trên Docker hiệu quả 10 Thực hiện lệnh “exit” để thoát ra khỏi Container](https://static-xf1.vietnix.vn/wp-content/uploads/2024/07/Thuc-hien-lenh-exit-de-thoat-ra-khoi-Container.webp)
Thế là bạn đã hoàn tất chuyển Database từ Container về Server chỉ với hai bước đơn giản như trên.
![Hướng dẫn cách Dump Database từ Container trên Docker hiệu quả 11 Copy dữ liệu từ Container về Server](https://static-xf1.vietnix.vn/wp-content/uploads/2024/07/Copy-du-lieu-tu-Container-ve-Server.webp)
Có công cụ (tool) nào hỗ trợ việc Dump và Import Database dễ dàng hơn giữa các Container Docker không?
Câu trả lời là có, bạn có thể sử dụng một số tool sau:
- Docker Compose: công cụ khá phổ biến dùng để quản lý các Container Docker trong một ứng dụng, cho phép người dùng định nghĩa và chạy Multi-Container cùng nhau trong một tệp YAML duy nhất chỉ. Bằng cách sử dụng các lệnh Docker-Compose Exec và Docker-Compose Run, Docker Compose sẽ giúp bạn Dump và Import Database một cách dễ dàng.
- Protainer: Công cụ giao diện quản trị web cho Docker để quản lý container, network, image, volume…. Với giao diện trực quan, đơn giản và dễ dùng Portainer được nhiều người lựa chọn sử dụng.
- Rancher: Cũng như Protainer, Rancher cung cấp giao diện người dùng đồ họa, ngoài ra còn có cả API để quản lý Container, cụm Kubernetes và tải trọng công việc. Không cần nhớ câu lệnh, chỉ cần vài cái nhấp chuột bạn đã có thể thực hiện Dump và Import Database giữa các Container Docker.
- Lando: Công cụ phát triển cục bộ cho các ứng dụng PHP cho phép bạn có thể Dump và Import Database với Lando bằng các lệnh tích hợp.
- Dockshell: là công cụ dòng lệnh (Command line) để thực thi các lệnh Docker trong IDE (môi trường phát triển tích hợp). Dockshell có các lệnh tích hợp để Dump và Import Database do đó bạn có thể dễ dàng chạy các lệnh Docker từ IDE.
![Hướng dẫn cách Dump Database từ Container trên Docker hiệu quả 12 Công cụ Portainer đơn giản dễ sử dụng khi Dump và Import Database](https://static-xf1.vietnix.vn/wp-content/uploads/2024/07/Cong-cu-Portainer-don-gian-de-su-dung-khi-Dump-va-Import-Database.webp)
Xét về bảo mật, cần lưu ý gì khi Dump Database từ một Container Docker đang chạy trên môi trường public cloud?
Bạn cần lưu ý một số vấn đề sau để đảm bảo tính bảo mật dữ liệu:
- Sử dụng mạng riêng ảo (VPN): Điều này sẽ mã hóa lưu lượng truy cập giữa bạn và Container từ đó giảm thiểu khả năng bị đánh cấp thông tin dữ liệu cá nhân.
- Xác thực và ủy quyền: Cần thiết lập phương thức xác thực và ủy quyền mạnh mẽ khi truy cập Container Docker để đảm bảo ngăn chặn các truy cập trái phép từ bên ngoài vào.
- Mã hóa cơ sở dữ liệu: Bạn hãy mã hóa cơ sở dữ liệu quan hệ (Relational database) khi ngay cả khi nghỉ và đang di chuyển. Vì các dữ liệu được mã hóa chỉ sẽ có thể đọc được hoặc xử lý sau khi được giải mã.
- Sử dụng các công cụ và hình ảnh Docker đáng tin: Hiện nay có khá nhiều các công cụ quản lý Docker, tuy nhiên chỉ nên sử dụng các công cụ và hình ảnh được tải xuống từ các nguồn tin cậy.
- Cập nhật phần mềm: Việc cập nhật phần mềm thường xuyên sẽ giúp bạn nâng cấp một số tính năng trong đó có cả lỗi bảo mật.
- Giới hạn quyền truy cập vào Container Docker và Database: Chỉ nên cấp quyền truy cập cho những người dùng và ứng dụng cần thiết.
- Theo dõi và ghi nhật ký: Thường xuyên giám sát hoạt động của Container Docker và Database có thể giúp bạn phát hiện những hoạt động khả nghi.
- Xóa thông tin, hình ảnh nhạy cảm: Các dữ liệu nhạy cảm nên xóa ra khỏi cơ sở dữ liệu để phòng ngừa trường hợp bị lộ thông tin.
Có thể sử dụng các kỹ thuật version control như Git để quản lý các bản Dump Database từ Container Docker không?
Có. Bạn hoàn toàn có thể sử dụng các kỹ thuật version control như Git để quản lý các bản Dump Database từ Container Docker. Bạn sẽ nhận được một số lợi ích khi sử dụng Git như:
- Lịch sử: cho phép người dùng theo dõi lịch sử các thay đổi của cơ sở dữ liệu, đồng nghĩa với việc bạn có thể khôi phục các dữ liệu của phiên bản cũ.
- Hợp tác: nhiều người có thể cùng làm việc một lúc trên cùng Database, điều này sẽ giúp ích cho các nhóm phát triển cùng làm chung một dự án.
- Khôi phục: có thể dễ dàng khôi phục dữ liệu về trạng thái trước đó nếu có bất kỳ sự cố xảy ra.
- Sao lưu: Git được xem như là một hệ thống sao lưu (backup) dữ liệu.
Lời kết
Việc sao lưu (Backup) hay kết xuất dữ liệu (Export data) là điều cần thiết. Hy vọng với hướng dẫn cách Dump Database Container trên Docker được chia sẻ bên trên sẽ giúp ích cho bạn. Hãy thường xuyên theo dõi Vietnix để cập nhật những kiến thức hay về công nghệ thông tin.