现在我正在开发新内容,以便构建服务器。
在我的服务器上,基本系统是Cent OS(7),我安装了Docker,拉出了操作系统,并建立了" WEB SERVER容器" Django与uwsgi和nginx。
但是我想提升服务,(数据库与postgres),最好的方法是什么?
在我现有的容器(使用网络服务器)上安装postgres
仅为数据库构建新容器。
我想知道这些优点和弱点。
答案 0 :(得分:1)
使用两个独立的容器是惯用的。此外,这更简单 - 如果容器中有两个或更多进程,则需要父进程来监视它们(通常人们使用进程管理器,如supervisord)。只需一个流程,您就不需要这样做。
通过监控,我主要是指如果容器收到SIGSTOP信号,您需要确保所有进程都正确关闭。如果你不能正确地做到这一点,你将最终得到僵尸进程。如果您只有一个信号流程或使用流程管理器,那么您不必担心这个问题。
此外,正如Greg指出的那样,拥有单独的容器允许您单独编排和安排容器,因此您可以更新/更改/缩放/重新启动每个容器而不会影响另一个容器。
答案 1 :(得分:0)
如果要在重新启动后将数据保留在数据库中,则数据库不应位于容器中,而应位于主机上。我假设你也想在容器中使用db。
设置第二个容器需要做更多的工作。您应该找到容器了解彼此地址的方法。每次启动容器时地址都会更改,因此您需要在主机上创建一些脚本。主持人必须找到ip-adresses并告知容器。
容器可能希望使用另一个容器的地址更新/ etc / hosts文件。当您想模拟不同的服务器并执行弹性测试时,这是一个很好的解决方案。在运行良好之前,你需要一些bash知识。
在所有其他情况下,选择一个容器。将所有东西安装在一个容器中更容易设置和后续开发。设置Docker只是您想要真正工作的环境。工具应该可以帮助您完成实际工作,而不是花费您所有的时间和精力。