本文摘自PHP中文网,作者V,侵删。
数据库不适合docker及容器化的几大原因:
1、数据不安全
即使你要把 Docker 数据放在主机来存储 ,它依然不能保证不丢数据。 Docker volumes 的设计围绕 Union FS 镜像层提供持久存储,但它仍然缺乏保证。
使用当前的存储驱动程序,Docker 仍然存在不可靠的风险。 如果容器崩溃并数据库未正确关闭,则可能会损坏数据。
2、运行数据库的环境需求
常看到 DBMS 容器和其他服务运行在同一主机上。 然而这些服务对硬件要求是非常不同的。
数据库(特别是关系型数据库)对 IO 的要求较高。 一般数据库引擎为了避免并发资源竞争而使用专用环境。如果将你的数据库放在容器中,那么将浪费你的项目的资源。 因为你需要为该实例配置大量额外的资源。 在公有云,当你需要 34G 内存时,你启动的实例却必须开 64G 内存。在实践中,这些资源并未完全使用。
怎么解决? 您可以分层设计,并使用固定资源来启动不同层次的多个实例。 水平伸缩总是比垂直伸缩更好。
相关阅读 >>
更多相关阅读请进入《数据库》频道 >>