小知识:如何恢复docker容器数据

项目测试环境数据库数据丢失,特此记录一下。当时是用 docker 安装的,以为临时使用一段时间,也没有持久化。突然前天 docker 日志满了,同事想着去清理日志,使用了如下命令:

docker system prune

结果当时 MySQL 容器当时正常处于停止状态,结果容器一下子就被干掉了,我们备份的数据还是三月份的,这下糟糕了。然后各种研究开始恢复。

然后我就去官方文档去研究这个命令是干什么的,上面用到的 docker system prune 意思是:

Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.

删除所有未使用的容器、网络、图像(悬空和未引用的图像)以及卷(可选)。

By default, volumes are not removed to prevent important data from being deleted if there is currently no container using the volume. Use the –volumes flag when running the command to prune volumes as well:

默认情况下,如果当前没有使用卷的容器,则不会删除卷以防止删除重要数据。运行命令时也可以使用 –volumes 标志来修剪卷:

这下心放下了一半,还好数据卷没有被删除,我们可以利用数据卷可以进行恢复数据。接下来记录下我的恢复方案吧。

1.查找数据卷位置

数据卷目录在 /var/lib/docker/volumes 下,每个容器都会在该目录下有一个文件夹,如果容器还存在的话,我们可以使用 docker inspect 容器ID 去查看 数据卷位置,这下容器被删除了,可怎么办,只能挨个去找了,一般 MySQL 容器数据卷目录下会有一个 _data 目录,该目录下会显示你每个数据库的文件夹,最终找到了。

%小知识:如何恢复docker容器数据-猿站网-插图

%小知识:如何恢复docker容器数据-1猿站网-插图

这个 cxhello 就是我们的测试库,现在我们就可以恢复数据了。

2.恢复

使用 docker volume create 数据卷名字 命令新建一个数据卷,docker volume ls 查看数据卷列表

%小知识:如何恢复docker容器数据-2猿站网-插图

注意:使用数据卷进行挂载的时候,数据卷必须是一个空的目录,也就是说不能有任何数据。

然后创建容器

docker run -d -p 3309:3306 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 –name huifu mysql:5.7

%小知识:如何恢复docker容器数据-3猿站网-插图

在恢复数据之前需要把刚刚建立的数据卷里面关联的内容删除掉,然后把之前的数据卷内容复制到现在的数据卷进行数据恢复。

cd /var/lib/docker/volumes/mysqldata/_data/ rm -f * rm -f -R *

%小知识:如何恢复docker容器数据-4猿站网-插图

复制内容到数据卷

cd /var/lib/docker/volumes/1db16a9dfdf3442b117ebc2ec11df5df4db717cfd567c77fa0a49905a9652fa0/_data/ cp -R * /var/lib/docker/volumes/mysqldata/_data/

%小知识:如何恢复docker容器数据-5猿站网-插图

至此数据库数据恢复完成,进入恢复的容器查看

%小知识:如何恢复docker容器数据-6猿站网-插图

参考文章

https://docs.docker.com/engine/reference/commandline/system_prune/

https://www.cnblogs.com/cheyunhua/p/13433400.html

到此这篇关于如何恢复docker容器数据 的文章就介绍到这了,更多相关docker容器数据恢复内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/tianyucxh/article/details/116594920

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:基于Docker搭建ELK 日志系统的方法

2023-3-22 11:31:59

建站知识

小知识:Docker阿里云RocketMQ 4.5.1部署流程详解

2023-3-22 11:47:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索