您现在的位置是:课程

【赵强老师】在Docker容器中部署MySQL数据库

2023-05-28 16:09课程 人已围观

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的Docker有以下几个部分组成:

  • Docker Client客户端

  • Docker Daemon守护进程

  • Docker Image镜像

  • Docker Container容器

 

数据库不适合Docker及容器化的原因

首先从数据不安全的角度,即使你要把 Docker 数据放在主机来存储 ,它依然不能保证不丢数据。Docker volumes 的设计围绕 Union FS 镜像层提供持久存储,但它仍然缺乏保证。使用当前的存储驱动程序,Docker 仍然存在不可靠的风险。如果容器崩溃并数据库未正确关闭,则可能会损坏数据。

 

其次,在 Docker 中打包无状态服务是很酷的,可以实现编排容器并解决单点故障问题。但是数据库呢?将数据库放在同一个环境中,它将会是有状态的,并使系统故障的范围更大。下次您的应用程序实例或应用程序崩溃,可能会影响数据库。

 

最后,从运行数据库的环境需求、网络,以及隔离性方面,都不适合在Docker中运行数据库。

-->