一个实例上使用多个数据库还是为MySQL使用多个Docker容器?

37

关于使用docker容器的最佳实践,我有一个问题。

我需要为我开发的每个应用程序都有一个数据库。现在我的问题是,我应该使用一个mysql docker实例并在其中创建多个数据库,还是应该为每个数据库创建一个实例。我认为使用每个数据库一个实例的缺点是我无法拥有一个用户可以访问所有数据库。我知道出于安全原因,这是一个优点,但当我尝试从客户端备份时,我需要逐个实例进行备份。而且,是否使用多个实例会占用过多的资源(尽管mysql可能使用较少的资源,但使用相对较大的mssql实例可能会导致以后出现资源问题)

我的问题是,在docker中通常的做法是什么,以及利弊如何?

1个回答

34
Docker 特别适用于部署微服务。以下链接讨论了两种关于数据库使用的策略:
  1. 每个服务一个数据库
  2. 共享数据库
我个人更喜欢单个服务一个数据库,并将其扩展到单独的数据库服务器实例的部署。这样确保服务松耦合,如果一个服务遭受数据库故障,不会影响其他服务。

谢谢回答。在您开发一堆服务(非生产环境)时,您是否也使用这种方法? - Bukharov Sergey
@BukharovSergey 当然可以。在我的情况下,启动单个DB实例并不困难,多个应用程序容器连接到该实例即可。 - Mark O'Connor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接