Docker OS容器和应用程序容器的区别

4
我不确定如何最佳使用Docker容器。当我使用虚拟机,例如ubuntu运行Web应用程序时,我会安装所需的每个软件,如数据库、Web服务等,并将其用作独立操作系统。
然而,Docker可以以不同的方式使用。
假设我想要运行一个Web应用程序,我有两个选择:
1) 在一个容器中安装所有软件;安装数据库、Java和所有其他必要的软件以运行(即像使用虚拟机一样)。
2) 在单独的容器中安装每个应用程序;在一个容器中安装数据库,在另一个容器中安装Web服务,并使它们相互通信。
选项1)似乎更容易部署一个全面的应用程序,但如果软件包之间存在某些依赖关系或分配操作系统资源到每个软件时,可能更难扩展。
选项2)似乎更难部署,但每个容器都可以升级而不会带来太多麻烦。
Docker用户的常见做法是什么?
编辑:答案也在https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container中注意到。
1个回答

5
最好的方法是为每个服务(应用程序)使用单独的容器。这样,您可以独立地升级/修改每个服务,而不影响其他容器。Docker非常适合微服务架构。
使用Docker Compose运行所有容器,只需一个命令:docker-compose up。在Docker Compose中,您可以定义容器之间的依赖关系。因此,它们将自动连接。
如果您想在单独的Linux主机上运行每个容器,则可以使用Docker Swarm,以便您无需担心网络问题。

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