这篇文章将为大家详细讲解有关怎么恢复码头工人容器的数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
项目测试环境数据库数据丢失,特此记录一下。当时是用码头工人安装的,以为临时使用一段时间,也没有持久化。突然前天码头工人日志满了,同事想着去清理日志,使用了如下命令:
docker system 删除
结果当时MySQL容器当时正常处于停止状态,结果容器一下子就被干掉了,我们备份的数据还是三月份的,这下糟糕了。然后各种研究开始恢复。
然后我就去官方文档去研究这个命令是干什么的,上面用到的<代码>码头工人系统删除代码>意思是:
删除所有未使用的容器、网络、图片(包括悬挂和未引用),和可选地,卷。
删除所有未使用的容器,网络,图像(悬空和未引用的图像)以及卷(可选)。
默认情况下,卷不移除防止重要数据被删除如果目前还没有容器使用体积。使用<代码> 代码>——卷旗在运行命令来删除卷:
默认情况下,如果当前没有使用卷的容器,则不会删除卷以防止删除重要数据。运行命令时也可以使用<代码> 代码>——卷标志来修剪卷:
引用>这下心放下了一半,还好数据卷没有被删除,我们可以利用数据卷可以进行恢复数据。接下来记录下我的恢复方案吧。
1。查找数据卷位置
数据卷目录在<代码>/var/lib/码头工人/卷代码>下,每个容器都会在该目录下有一个文件夹,如果容器还存在的话,我们可以使用<代码>码头工人检查容器ID> 代码去查看数据卷位置,这下容器被删除了,可怎么办,只能挨个去找了,一般MySQL容器数据卷目录下会有一个<代码> _data 代码>目录,该目录下会显示你每个数据库的文件夹,最终找到了。
这个<代码> cxhello> 代码就是我们的测试库,现在我们就可以恢复数据了。
2。恢复
使用<代码>码头工人卷创建数据卷名字代码>命令新建一个数据卷,<代码>码头工人卷ls> 代码查看数据卷列表
注意:使用数据卷进行挂载的时候,数据卷必须是一个空的目录,也就是说不能有任何数据。
引用>然后创建容器
docker run -d -p 3309:3306 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456,——name huifu mysql: 5.7
在恢复数据之前需要把刚刚建立的数据卷里面关联的内容删除掉,然后把之前的数据卷内容复制到现在的数据卷进行数据恢复。
cd /var/lib/码头工人/卷/mysqldata/_data/rm -f * rm -f  -R *
复制内容到数据卷
cd /var/lib/码头工人/卷/1 db16a9dfdf3442b117ebc2ec11df5df4db717cfd567c77fa0a49905a9652fa0/_data/cp -R *,/var/lib/码头工人/卷/mysqldata _data/
至此数据库数据恢复完成,进入恢复的容器查看
关于怎么恢复码头工人容器的数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
怎么恢复码头工人容器的数据