我应该将应用程序拆分为多个链接的 Docker 容器还是将它们合并为一个?

Ale*_*lex 7 virtualization containers docker

背景

我目前正在构建一个我想部署到 Docker 容器的应用程序。

容器将在我的服务器上运行。我希望能够在同一台服务器上运行其他应用程序,而不会增加运行的 Docker 映像的数量。

截至目前,不同的零件/容器是:

  • Nginx(反向代理,静态资源)
  • 节点(应用程序前端)
  • 节点(应用后端/API)
  • 蒙戈(数据库)

想法

我的一般想法是每个不同的部分都应该作为一个容器运行。我担心的是,如果我要在同一台机器上运行另一个应用程序,我最终会用大量无法处理的链接图像来膨胀它。

这可以通过为每个应用程序制作一个图像来解决。这样上述服务将成为一个图像的一部分。这首先与 Docker 的整体安全性或目的冲突吗?

澄清

在一个 Docker 镜像中拥有多个服务是否与 Docker 的目的冲突?

当从一个镜像运行服务时,容器的整体安全优势会被消除吗?

Mic*_*ton 7

Docker 自己清楚地表明了这一点:您应该为每个容器运行一个进程

但是,他们用于处理链接容器的工具还有很多不足之处。他们确实提供了 docker-compose(以前称为 fig),但我的开发人员报告说它很挑剔,有时会丢失对链接容器的跟踪。它也不能很好地扩展,实际上只适用于非常小的项目。

现在我认为最好的解决方案是Kubernetes,一个谷歌项目。Kubernetes 也是最新版本的Openshift Origin、PaaS 平台以及 Google Container Engine 以及目前可能的其他东西的基础。如果您使用 Kubernetes,您将能够轻松部署到此类平台。