为什么不建议将数据库部署于Docker上?

Docker 不适合部署数据库的七大原因

1.数据安全问题

不要将数据存储在容器中,这是Docker官方容器使用技巧中的一条。容器可以随时关闭、删除或停止,因此当容器被rm掉,里面的数据将会丢失。为了避免数据丢失,用户可使用数据卷挂载来存储数据。但是容器的Volumes设计围绕Union FS镜像层提供持久存储,数据安全缺乏保证。而且容器里共享数据卷组,对物理机硬件损伤较大。总之,如果容器崩溃,数据库未正常关闭,则可能会损伤数据。

2.性能问题

像关系型数据库MySQL,它对于IO要求比较高。当一台物理机跑多个数据库时,IO就会累加,导致IO瓶颈,大大降低MySQL的读写性能。如果部署在Docker上,那么IO请求又会出现在存储层面。

针对以上问题的解决方案:

1)数据库程序与数据分离---将程序放到容器,将数据放到共享存储。另外,建议不要将数据放到宿主机里。

2)Doker里面部署轻量级或者分布式数据库

3)合理布局应用---对IO要求高的应用或服务,将数据库部署在物理机或者KVM中。像腾讯云的TDSQL(金融分布式数据库)和阿里云的Oceanbase(分布式数据库系统)就是直接部署在物理机上的。

3.网络问题

Docker存在网络问题,而数据库需要专用的和持久的吞吐量,以实现更高负载,而解决Doker网路问题需要对网络虚拟化有着深入了解,这些问题放在一起,因此容器化会让数据库容器更加困难,所以建议将数据库放在专用环境中。

4.状态

Docker中,水平伸缩只能是用于无状态计算服务,而数据库是具有数据状态的,因此&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值