我可以理解将无状态服务(例如Web服务器、应用服务器和负载均衡器)进行Docker化的好处。如果您在机群上运行这些服务,使用低开销很容易将这些容器移动到其他地方。但是,我不明白为什么要将数据库容器化?因为数据库连接到特定硬盘中持久的数据卷,由于状态问题,实际上不容易且不高效地移动数据库容器。那么有人能看出Docker化数据库的有用性吗?
我可以理解将无状态服务(例如Web服务器、应用服务器和负载均衡器)进行Docker化的好处。如果您在机群上运行这些服务,使用低开销很容易将这些容器移动到其他地方。但是,我不明白为什么要将数据库容器化?因为数据库连接到特定硬盘中持久的数据卷,由于状态问题,实际上不容易且不高效地移动数据库容器。那么有人能看出Docker化数据库的有用性吗?
对于你关于效率的评论,我不确定是否同意...相比于本地安装,下载和运行数据库容器要容易得多。docker文档描述了如何在有状态容器和其数据之间实现干净的逻辑分离:
但是...你说的没错,有状态容器将会与它的主机服务器绑定在一起,除非有某种机制可以将数据随着容器移动。
一个显而易见的解决方案是在可能运行您的数据库的所有主机上挂载共享存储卷。
以下文章讨论了一种非常创新的解决方案,其中类似bittorrent的客户端用于在主机之间复制数据容器。
最后,一个名为flocker的新项目正在尝试通过管理有状态容器及其关联的ZFS卷来解决这个问题:
这是一个不错的帖子,SQL Server克隆方面的最新进展将为使用克隆容器增加额外功能。 这解决了处理大型数据集时遇到的一些问题。 全部披露,我在Windocks工作,我们发布了2.0版本的SQL Server容器和集成数据库克隆。