我有超过 30 个使用各种 Ruby 框架编写的应用程序。它们都是内部应用程序,因此它们接收的流量非常少。我想在单独的 Docker 容器中运行它们。它们都使用 Postgres 作为数据库,每个数据库都有不同的数据库。我正在决定是否应该将所有数据库放在一台更强大的服务器上,或者在与应用程序相同的 Docker 映像中运行数据库服务器。我倾向于使用单独的数据库服务器,这样可能更容易管理备份。我将在 AWS 上运行整个设置。
答案1
您可以并且也应该在容器中运行 PostGreSQL,无论它们是否在同一个 EC2 实例上。
如果你在同一个 EC2 实例上运行数据库容器,那么你应该考虑使用Docker 链接。
还要注意,一个好的做法是 PG_DATA 目录不应该位于容器内,而应该位于卷中。
答案2
如果您可以忍受每个 Docker 中安装 PostGRES 所占用的空间,那么这将是最好的解决方案......
为了速度...这是显而易见的。
为了安全起见……不是那么明显,但在这个解决方案中,您不需要将 PostGRES 端口暴露给外界……您只需要从 docker 内部访问数据库……这样您就可以阻止防火墙中的数据库端口(?5432)... ;-)