我不确定使用 docker 容器的最佳实践是什么。当我使用虚拟机(比如 ubuntu)来运行 Web 应用程序时,我会安装运行应用程序所需的所有软件,例如数据库、Web 服务等,并像独立操作系统一样使用。
但是,可以以不同的方式使用 Docker。
给定一个我想运行 Web 应用程序的场景,我有两个选择:
在一个容器上安装所有软件;安装数据库、java 和所有其他运行所需的软件(即像我使用 VM 一样使用)。
将每个应用程序安装在单独的容器上;一个容器中的数据库,另一个容器中的 Web 服务,并使它们相互通信。
选项 1) 似乎更容易部署全栈应用程序,但如果包之间存在一些依赖复杂问题或将操作系统资源分配给每个软件,则可能更难扩展。
选项 2) 似乎更难部署,但每个容器都可以升级而不会带来太多痛苦。
Docker 用户的常见做法是什么?