首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不建议在 Docker 中跑 MySQL?

docker作为一个虚拟机,或者作为被k8s管理的pod,能持久稳定工作的程度,其实是不如服务器的。

点击输入图片描述(最多30字)

s比方说吧,比如mysql直接安装在一台linux主机上,当这台主机坏了,需要重装时,mysql里的数据是会丢失的,但大家想一下,linux主机出现这种问题的可能性极小。但docker容器一般是安装在linux服务器里的,本人没统计过,但docker容器出错的概率绝对是要大于linux服务器,比如在docker里装了mysql,mysql里也存了十几万条业务数据,如果docker坏了,那么数据就直接全部丢失。

点击输入图片描述(最多30字)

好,姑且不说docker出故障的情况,再说发布版本时的情况,如果mysql直接安装在服务器,那么发版时可以直接运行脚本,顶多重启mysql。而发版时,一般会根据dockerfile文件重新生成新的容器,即删除原来的,创建新的,这时mysql里的数据就会丢失,如果要做数据备份吧,这个工作本来就是无妄之灾,原本如果直接安装在服务器里,就根本不需要这个事情。

点击输入图片描述(最多30字)

所以docker里一般不装mysql等需要持久化数据的组件,因为docker一旦出故障,或者需要重启,这些持久化的数据就会丢失。而现实开发中,在docker里跑mysql的场景一般是测试,比如用dockerfile指定,在创建docker时会拉mysql镜像,启动时做mysql配置,然后在docker里跑个测试脚本,这些脚本会向mysql里插入若干测试数据,同时做测试,测试好了以后,哪怕删除了docker也不要紧,因为其中的测试数据反正没用。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OhHy-Ol5LIOLIfU9M5Ev6vEw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券