查看数据保存的位置
docker inspect --format='{{.Mounts}}' mxg_mysql
容器路径为:`/var/lib/mysql` ,宿主机数据保存在:
/var/lib/docker/volumes/c4ecc0d59c96bfea03428a799a7a63d6f5c0102a8c17a393f53ef11d3 a0accc5/_data
将此路径数据备份在 /base_data (如果后面镜像是提供给别人, 则此备份的数据也同时提供)
cp -rf
/var/lib/docker/volumes/c4ecc0d59c96bfea03428a799a7a63d6f5c0102a8c17a393f53ef11d3 a0accc5/_data /mysql
mxg_mysql 容器保存为镜像
docker commit mxg_mysql mysql_new:1
通过上面保存的镜像创建容器
docker run -id --name=mxg_mysql_new -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql_new:1
连接上(192.168.10.11:3306),查看当前没有 test 库,即没有还原数据
采用 拷贝方法 进行还原数据, 容器中的数据目录为: /var/lib/mysql
docker cp /mysql/ mxg_mysql_new:/var/lib/
重启MySQL容器,才可生效,不然报错
docker restart mxg_mysql_new
必须重启,不然刷新出现以下错误
注意:如果发现上面刷新后,发现没有test数据库,说明docker cp的路径有问题,一定要与上面步骤一样。
如果其他容器有数据目录挂载,解决方式同上面一致。