上一篇:Docker的那些事儿—Docker数据卷容器(31)
数据备份一直是运维中最最重要的一件事,Docker中的卷数据备份也同等重要!下面就来研究下Docker中的卷数据备份。
首先,我们运行一个mysql的数据库容器:
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -v mysql_data:/var/lib/mysql mysql
下面进入mysql,由于容器启动时作了端口映射,所以宿主机安装了mysql客户端的话就可以直接连接mysql数据库了(当然了,也可以进入容器直接连接mysql操作)。如果未安装的话:apt-get install -y mysql-client-core-5.7
连接mysql数据库,创建一个docker_data的数据库,并在其中创建一个表table1。
我们在数据库中新建的库及表都存在
下面开始备份mysql数据库数据:
docker run -it --rm --volumes-from mysql -v$(pwd):/backup alpine tar zcvf /backup/backup.tar.gz /var/lib/mysql
其中:
--rm 备份后自动删除容器
--volumes-from 加载上述mysql容器
-v 挂载当前目录到新容器的/backup目录下
tar zcvf /backup/backup.tar.gz /var/lib/mysql 在新容器内执行tar命令将mysql容器的/var/lib/mysql打包成backup.tar.gz放到当前目录下
当前目录下存在backup.tar.gz,且压缩包里存在新增的数据。下一节我们将使用这个备份包去恢复mysql容器卷数据。