Dockerocker中不适合部署数据库的原因

数据安全问题
1
2
3
容器的不持久性
容器volumes设计是围绕unionFS镜像层提供持久存储,数据安全缺乏保证。
如容器突然崩溃、数据库未正常关闭,可能会损坏数据。
性能问题
1
数据库对IO要求较高,当跑多个容器IO就会累加,导致IO瓶颈,大大降低数据库的读写性能。
网络问题
1
2
容器是虚拟机管理程序和主机虚拟机背后的一个隔离层,网络对于数据库复制是至关重要的,需要主从数据库间的稳定连接。
容器化使数据库很难管理,花太多时间解决docker网络问题。
状态
1
2
docker中允许无状态服务很适合,但是数据库这类不是很适宜
docker中水平伸缩只适用于无状态计算服务,而不是数据库
资源隔离
1
2
资源隔离方面,docker不如kvm,docker是利用cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。
如果其他应用过度占用宿主机资源将会影响容器里mysql的读写效率。
运行数据库的环境需求
1
数据库(特别是关系型数据库)对IO要求较高,一般数据库引擎为了避免并发资源竞争而使用专用环境。
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。