如何恢复docker容器数据

更新时间:2021年05月21日 11:01:46   作者:tianyucxh项目测试环境数据库数据丢失, 我们可以利用数据卷可以进行恢复数据,下面我来记录一下,希望此文章对各位有所帮助项目测试环境数据库数据丢失,特此记录一下。当时是用 docker 安装的,以为临时使用一段时间,也没有持久化。突然前天 docker 日志满了,同事想着去清理日志,使用了如下命令:1docker 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 目录,该目录下会显示你每个数据库的文件夹,最终找到了。

这个 cxhello 就是我们的测试库,现在我们就可以恢复数据了。2.恢复使用 docker volume create 数据卷名字 命令新建一个数据卷,docker volume ls 查看数据卷列表

注意:使用数据卷进行挂载的时候,数据卷必须是一个空的目录,也就是说不能有任何数据。然后创建容器1docker run -d -p 3309:3306 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name huifu mysql:5.7

在恢复数据之前需要把刚刚建立的数据卷里面关联的内容删除掉,然后把之前的数据卷内容复制到现在的数据卷进行数据恢复。123cd /var/lib/docker/volumes/mysqldata/_data/rm -f *rm -f -R *

复制内容到数据卷12cd /var/lib/docker/volumes/1db16a9dfdf3442b117ebc2ec11df5df4db717cfd567c77fa0a49905a9652fa0/_data/cp -R * /var/lib/docker/volumes/mysqldata/_data/

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

参考文章https://docs.docker.com/engine/reference/commandline/system_prune/https://www.cnblogs.com/cheyunhua/p/13433400.html到此这篇关于如何恢复docker容器数据 的文章就介绍到这了,更多相关docker容器数据恢复内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!您可能感兴趣的文章:Docker容器从镜像恢复代码的操作步骤Docker数据备份恢复实现过程详解docker中psql数据库备份与恢复详解详解Docker中容器的备份、恢复和迁移Docker 私有仓库恢复实例详解

(0)

相关推荐

  • Docker学习笔记之--安装mysql 并持久化数据到本地,最后使用Navicat连接测试(环境:centos7)

    在docker中 安装 mysql 8.0版本,参考文档:https://www.runoob.com/docker/docker-install-mysql.html 第一步:安装 docker p ...

  • Docker 数据持久化Volume

    Docker镜像是基于联合文件系统(Union File System)的一种层式结构,由一系列指令一步一步构建出来.Docker镜像被存储在一系列的只读层中.当我们创建一个容器时,Docker会读取 ...

  • Docker 持久存储介绍(十三)

    一.Docker 数据存储 我们都知道 Docker 的数据可以存在容器的可写层,但是也存在以下几点不足: 当该容器不再运行时,数据将不会持久存储,如果另一个进程需要它,就很难将数据从容器中取出. 容 ...

  • (7条消息) 迁移 Docker 容器储存位置

    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载.或重新修改使用,但需要注明来源. 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2019年07月1 ...

  • docker容器备份、恢复和迁移volume方案

    volume作为数据的载体,在很多情况下需要对其中的数据进行备份.迁移或是恢复.下面一docker容器的volume为例,说一下备份的技巧. 我们先建立一个容器vol_simple,该容器在/date ...

  • docker容器与宿主机的数据交互方式总结

    这篇文章主要给大家介绍了关于docker容器与宿主机的数据交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 前言 在生产环境中 ...

  • docker容器与宿主机的数据交互

    在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作.方式一.Docker cp命令 docker cp :用于容器与主机之间的 ...

  • 创建用于AI和机器学习的Docker容器

    容器技术(例如Docker)极大地简化了依赖性管理和软件的可移植性.在本系列文章中,我们将探讨Docker在机器学习(ML)场景中的用法. 本系列假定您熟悉ML,一般的容器化,尤其是Docker.欢迎 ...

  • 在启用GPU的Docker容器中运行AI模型

    容器技术(例如Docker)极大地简化了依赖性管理和软件的可移植性.在本系列文章中,我们将探讨Docker在机器学习(ML)场景中的用法. 本系列假定您熟悉ML,一般的容器化,尤其是Docker.欢迎 ...

  • 群晖NAS安装Docker容器版emby(zishuo版)

    原文链接 『原汁原味的官方Docker容器用法,只是单纯的进行破解及插件源,内置刮削补丁穿墙方案,改善大陆地区的用户体验,本镜像不用任何插件即可硬件转码和外网播放(小白不懂就多看看教程,不显示硬件转码 ...

  • Shell脚本控制docker容器启动顺序

    Shell脚本控制docker容器启动顺序

  • docker容器和虚拟化有什么区别?Linux云计算学习

    Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件(环境文件).那容器是虚拟化吗?docker容器和虚拟化有什么区别? 容器镜像包含了应用的所 ...

  • 央视曝旧手机恢复出厂设置数据仍能被获取,这可咋办?

    随着智能手机更新迭代步伐的加快,尤其是5G时代到来引发的换机潮,越来越多的二手旧手机将回收并再次流入市场销售.央视新闻近日提到一个我们生活中非常容易忽视的问题--二手旧手机原机主的信息安全.报道称,商 ...