MySQL 保存镜像实战操作( 拷贝方法 )

查看数据保存的位置

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的路径有问题,一定要与上面步骤一样。

如果其他容器有数据目录挂载,解决方式同上面一致。

原文地址:https://www.cnblogs.com/116970u/p/10877943.html