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

老铁们,大家好,相信还有很多朋友对于数据库真的不适合Docker及容器化吗和数据库不建议容器化的相关问题不太懂,没关系,今天就由我来为大家分享分享数据库真的不适合Docker及容器化吗以及数据库不建议容器化的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

本文目录

  1. 容器化部署和传统部署区别
  2. 容器化部署优缺点
  3. 容器部署需要应用中间件吗
  4. 数据库真的不适合Docker及容器化吗

容器化部署和传统部署区别

1、含义不同

容器化部署:容器化部署是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的”容器”中。

传统部署:环境和项目分开搭建部署,在平台或操作系统上直接编写代码。

2、环境复杂程度不同

容器化部署:可以在各个环境中实现一键安装,例如:一键安装Linux、一键安装Mysql、一键安装Nginx等。

传统部署:传统的软件开发与发布环境复杂,配置繁琐,经常会出现:代码在开发环境可以运行,一旦部署到服务器上就运行不了的问题。这是一个很常见的问题,现实中,同一个系统在不同的环境中部署(开发环境、测试环境、生产环境等),每一个环节都有可能出现各种问题,如:Mysql在测试环境安装报错,在开发环境下安装正常,我们往往在这方面浪费很多的时间。

3、可移植性不同

容器化部署:实现了将环境和项目统一化部署,方便迁移,方便管理——类似一个容器,集中式管理。

传统部署:传统的部署方式,环境和项目分开搭建部署,环境离散,不方便迁移。

4、速度不同

容器化部署:容器化部署将速度作为关键指标,即开发人员将代码推送到生产环境的能力,从而为利益相关者创造价值。允许开发人员以自动化工具的形式进行(受控)基础架构更改,这些工具根据版本跟踪的配置文件配置环境。开发者可以通过配置文件和从版本控制系统触发的自动生成管道来重新部署应用程序环境。这种快速且自动化的过程将部署概念融入了应用程序设计的核心。

传统部署:传统部署极有可能涉及多个手动过程,这些过程必须以正确的方式执行,部署才能成功。所有这些事情都使传统部署的速度比容器化部署慢得多。

容器化部署优缺点

优点:1、容器化部署允许用户以开发者打算使用它们的方式运行应用程序。2、容器化部署能跨任何服务器和云在任何地方运行。3、它包含依赖项、二进制文件、配置文件以及运行应用程序所需的所有内容。

缺点:只部署一个节点。

容器部署需要应用中间件吗

需要的,

常见中间件要实现容器化部署,需要解决以下问题:

对于网关类中间件,作为流量入口,虽然是无状态类型的中间件,但由于需要提供固定ip配置SLB,因此容器化部署就需要解决固定ip的问题。

对于存储类中间件,是有状态类型的中间件,容器重启后需要能访问同一个“持久化存储设备”,数据不容忍丢失,因此容器化部署需要解决持久化存储问题。

数据库真的不适合Docker及容器化吗

1.数据不安全即使你要把Docker数据放在主机来存储,它依然不能保证不丢数据。

Dockervolumes的设计围绕UnionFS镜像层提供持久存储,但它仍然缺乏保证。使用当前的存储驱动程序,Docker仍然存在不可靠的风险。如果容器崩溃并数据库未正确关闭,则可能会损坏数据。2.运行数据库的环境需求常看到DBMS容器和其他服务运行在同一主机上。然而这些服务对硬件要求是非常不同的。数据库(特别是关系型数据库)对IO的要求较高。一般数据库引擎为了避免并发资源竞争而使用专用环境。如果将你的数据库放在容器中,那么将浪费你的项目的资源。因为你需要为该实例配置大量额外的资源。在公有云,当你需要34G内存时,你启动的实例却必须开64G内存。在实践中,这些资源并未完全使用。

数据库真的不适合Docker及容器化吗和数据库不建议容器化的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

Docker最全教程 数据库容器化 十一