ubuntu

Ubuntu Docker如何进行备份与恢复

小樊
39
2025-04-11 15:15:38
栏目: 智能运维

在Ubuntu上使用Docker进行备份与恢复可以通过以下几种方法实现:

1. 备份MySQL数据库

备份单个数据库

docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase' > mydatabase_backup.sql

备份所有数据库

docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> --all-databases' > all_databases_backup.sql

压缩备份文件

docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase' | gzip > mydatabase_backup.sql.gz

自动化备份

编辑 crontab 文件:

crontab -e

添加备份任务:

0 1 * * * docker exec -i <container_name_or_id> sh -c 'exec mysqldump -u root -p<password> mydatabase' | gzip > /path/to/backup/mydatabase_$(date +\%Y\%m\%d).sql.gz

恢复备份

恢复单个数据库:

docker exec -i <container_name_or_id> mysql -u root -p<password> mydatabase < mydatabase_backup.sql

恢复所有数据库:

docker exec -i <container_name_or_id> mysql -u root -p<password> < all_databases_backup.sql

恢复压缩备份:

gunzip < mydatabase_backup.sql.gz | docker exec -i <container_name_or_id> mysql -u root -p<password> mydatabase

2. 备份和恢复Docker容器镜像

备份镜像

docker save -o mysql:5.6.tar.gz mysql:5.6

恢复镜像

docker load -i mysql:5.6.tar.gz

3. 备份和恢复数据卷

备份数据卷

docker run --volumes-from container_name -v PWD:/backup busybox tar cvf /backup/backup.tar /var/lib/docker

恢复数据卷

将备份的数据卷tar文件解压到目标位置,然后使用Docker容器挂载数据卷。

4. 备份和恢复Docker Compose文件

备份Docker Compose文件

docker-compose save > docker-compose.yml

恢复Docker Compose文件

docker-compose load

在进行备份和恢复操作之前,请确保容器和应用程序处于可靠的状态,并定期备份容器镜像和数据卷,以防止数据丢失。

0
看了该问题的人还看了