公司mysql docker容器挂了,数据丢失,老板要起诉我。。

docker使用教程相关系列 目录


目录


场景


分析原因


解决方案


结论


1、创建配置文件


2、启动容器


3、测试连接


4、验证数据持久化


1、创建数据库,创建表,插入数据


2、再启动一个新的mysql容器,关闭当前mysql容器


3、有同学可能会问,如果把当前的容器都删除了,那再启动一个新的mysql容器,数据还在不在


场景

市民赵铁柱在A公司担任开发工程师,某日赵铁柱负责维护的一个网站无法访问,经排查,是docker的mysql容器挂了,这个简单,赵铁柱不慌不忙,倒了杯咖啡,然后不急不缓地启动了mysql容器。心想着中午点个什么外卖好。


看到mysql容器启动成功了,然后自己访问网站测试了下,数据全没了。。让我们为市民赵铁柱默哀三秒钟


分析原因

赵铁柱是犯了什么错误,导致数据丢失的呢。


经排查发现,赵铁柱为了偷懒,没有做mysql容器的数据持久化


解决方案

结论

将数据从容器中挂载到宿主机上


不了解docker的数据卷挂载的同学,可以看这里:docker将数据从宿主机挂载到容器的方式(一)


1、创建配置文件

创建配置文件存放位置 和数据映射位置公司mysql docker容器挂了,数据丢失,老板要起诉我。。公司mysql docker容器挂了,数据丢失,老板要起诉我。。

docker run -d -p 3306:3306 --restart always --privileged=true --name dream_mysql57 -e MYSQL_ROOT_PASSWORD=root -v /mysql/config/my.conf:/etc/my.cof -v=/mysql/data:/var/lib/mysql mysql:5.7

公司mysql docker容器挂了,数据丢失,老板要起诉我。。公司mysql docker容器挂了,数据丢失,老板要起诉我。。公司mysql docker容器挂了,数据丢失,老板要起诉我。。

docker run -d -p 3307:3306 --restart always --privileged=true --name dream_mysql57_3307 -e MYSQL_ROOT_PASSWORD=root -v /mysql/config/my.conf:/etc/my.cof -v=/mysql/data:/var/lib/mysql mysql:5.7

公司mysql docker容器挂了,数据丢失,老板要起诉我。。公司mysql docker容器挂了,数据丢失,老板要起诉我。。

3、有同学可能会问,如果把当前的容器都删除了,那再启动一个新的mysql容器,数据还在不在

心动不如行动,我们来验证下

先把mysql容器全干掉公司mysql docker容器挂了,数据丢失,老板要起诉我。。

docker run -d -p 3306:3306 --restart always --privileged=true --name dream_mysql57_3306 -e MYSQL_ROOT_PASSWORD=root -v /mysql/config/my.conf:/etc/my.cof -v=/mysql/data:/var/lib/mysql mysql:5.7

先别急着访问,先看下容器有没有启动

容器是启动的

公司mysql docker容器挂了,数据丢失,老板要起诉我。。

上一篇:使用ECS初次感悟


下一篇:在mac os中安装nginx,php