一次docker重启导致的数据丢失

有个docker,挂载了宿主机的一个共享目录,这个共享目录是存sqlserver数据的,

由于宿主机磁盘空间不够,我就把共享目录mv到另一个空间大的分区了,

结果某天重启了docker的时候,发现sqlserver数据库里的东西都没了,

我就奇怪了,之前也重启过docker啊,怎么没有丢失数据? 

后来发现,是因为把共享目录里的东西mv到另一个分区之后,没有修改docker 的Mount的配置,导致docker重启之后发现它的共享目录没了,就新建了一套sqlserver数据库文件。

幸好docker是建在一个华为云服务器上,每天早上6:00都有镜像备份,那就恢复镜像呗,

结果恢复了镜像也没用,查什么linux文件的inode之类的,没法恢复。

更悲催的是,之前备份了一次数据库文件,但是备份在docker里的,重启之后自然就没了!

教训就是:

1.一定要做好备份,而且是异地备份

2.对一门新的技术,一定要摸得透透的

3.如果做不到,那就等着栽跟头,经一堑长一智

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Docker是一种轻量级容器技术,允许将应用程序及其依赖项打包到容器中,以确保应用程序在任何环境下都能正常运行。在使用Docker时,用户可能会遇到一些问题,其中之一就是在重启Docker容器之后导致MySQL数据丢失的问题。 首先,值得注意的是,Docker容器是短暂且易失的。当容器停止或重启时,容器中的所有数据都将丢失。这意味着当您在容器内运行MySQL服务器时,如果容器停止或重启,您将丢失MySQL存储在容器中的所有数据。 要解决此问题,可以采用一些解决方案。一个解决方案是使用Docker数据卷进行数据持久化。这种方法涉及将MySQL数据文件存储在Docker数据卷中,以在容器停止或重启时保留MySQL数据。要创建数据卷,请使用以下命令: docker volume create mysql_data 然后,在运行容器时使用以下命令挂载数据卷至容器中: docker run -v mysql_data:/var/lib/mysql mysql 这将在容器的/var/lib/mysql目录中创建一个名为mysql_data的数据卷,并将该数据卷挂载到MySQL容器的/var/lib/mysql目录内。 另一个解决方案是使用Docker Compose进行容器编排。将MySQL容器与其他应用程序容器一起部署时,使用Docker Compose可以更轻松地管理容器之间的依赖关系,并确保在重启容器时不会丢失数据。 总之,要在重启Docker容器后避免MySQL数据丢失,您可以使用Docker数据卷进行数据持久化或使用Docker Compose进行容器编排。这些解决方案都可以确保在重启容器时保留MySQL数据,并提高Docker容器的可靠性和稳定性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值