Docker的那些事儿—Docker卷数据恢复或迁移(33)
2018-03-23 本文已影响8人
sjyu_eadd
上一篇:Docker的那些事儿—Docker卷数据备份(32)
备份数据包有了后,就可以来恢复或迁移数据了。
恢复卷数据到原容器
为了演示数据缺失可以恢复,我们先将mysql容器内上一节新增的database删除掉。
![](https://img.haomeiwen.com/i10839544/e00aec948d8491d8.png)
下面开始恢复数据库数据
docker run -it --rm --volumes-from mysql -v$(pwd):/backup alpine tar zxvf /backup/backup.tar.gz -C /
![](https://img.haomeiwen.com/i10839544/b9b56b71eeb98263.png)
恢复后
![](https://img.haomeiwen.com/i10839544/bec9d02c5495a336.png)
可见,docker_data数据库和table1表均恢复了。
注意:执行恢复动作前,需要先将原来的mysql容器stop掉,不然可能会出现table1表数据报错。
将卷数据迁移到新的容器
创建新的容器mysql1
docker run -itd --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -v mysql_data1:/var/lib/mysql mysql
![](https://img.haomeiwen.com/i10839544/ec5e7c7d09246c29.png)
将数据迁移到mysql1
docker run -it --rm --volumes-from mysql1-v $(pwd):/backup alpine tar zxvf /backup/backup.tar.gz -C /
![](https://img.haomeiwen.com/i10839544/d2fe304e8194491a.png)
![](https://img.haomeiwen.com/i10839544/d7fdd1aefb08aba7.png)
新的mysql1容器也包含了备份包数据。
至此,Docker中卷数据的备份、恢复或迁移均完成。
下一篇:Docker的那些事儿—Docker跨主机数据(34)
![](https://img.haomeiwen.com/i10839544/f968b0e59e5e8134.png)