每个Docker容器一个或多个数据库

比方说,我有几个不同的容器,每个容器都使用它自己的数据库。 这种情况下的最佳做法是什么? 运行一个容器,比如说一个MySQL服务器,里面的所有数据库或者每个数据库运行一个数据库服务器容器?

除了表演之外的任何其他评论都会受到欢迎。

由于Docker容器的开销在这里并不显着而且可以忽略不计,所以问题更多的是关于微服务范式中的架构。

性能确实是一个复杂的问题,并没有一般的build议,但也许下面会帮助你:

个人认为,我怀疑项目的初学者应该尝试提前解决所有可能的性能问题(# MVP ,# 敏捷 )但是,纠正我,但它看起来像你没有太多的资源(一个主机?),想成为提前节约这些资源。

好的,你现在最关心的是什么?

记忆?

然后在同一个主机上有两个并发的mySQL实例可能不是那么好(但对于不同的设置不是问题)

对于一个主机,我会build议开始使用一个数据库容器,但创build不同的模式。 这可能涉及标准容器的额外工作( https://forums.docker.com/t/multiple-databases-in-official-mysql-container/8324

不记忆

我现在不太在乎,从一开始就用不同的数据库开始。 能够将您的服务与数据库水平分开是一个巨大的价值! 由于非常理论上的未来性能问题,我不想削弱这个devise决策。

您希望使用单个数据库服务器,最好运行一个可以附加到pipe理的shell,共享一个Unix套接字,一个端口或两者都链接到链接的容器。 这意味着您可以更轻松地pipe理数据库容器作为服务,调整性能,监视使用情况,备份容量等。

当然,可能有非标准的情况下,你可能想要有独立的服务器,例如运行孤立的主机资源,用户,数据库的服务器,但我确信这不应该适用于开发环境。