Làm sao để backup database trong docker container ?
Muốn backup data base trên 1 docker container bạn làm như sau:
docker exec -it container_ID sh
container_ID: Là ID của container đang chạy, để lấy được ID này bạn dùng lệnh sau để liệt kê ra tất cả các container đang chạy và copy ID của nó.
docker container ps
mysql -u root -p
Sau khi gõ lệnh trên và bấm enter thì bạn hãy nhập password để đăng nhập.
Khi đăng nhập vào xong, bạn hãy gõ lệnh sau để liệt kê ra tất cả các database và copy tên database mà bạn muốn backup.
show databases;
Hãy copy tên database mà bạn muốn backup, sau đó gõ exit để thoát mysql
mysqldump -u root -p database_name > path/to/database.sql
sau khi backup thành công thì gõ exit để thoát khỏi container
sudo docker cp container_ID:/path/to/file/database /path/to/save/in/host
container_ID lấy giống như ở bước 1
/path/to/file/database chính là đường dẫn đến file database.sql, nó chính là /home/database.sql
/path/to/save/in/host là đường dẫn cần lưu file, tôi đang đứng ở thu mục có file docker-compose.yml, tôi sẽ copy ra thư mục này nên tôi để dấu chấm
sudo docker cp 0c1dd6895413:/home/database.sql .
Như vậy là đã backup thành công