我正在和自己讨论如何思考和使用Docker容器.
从文献和示例看来,容器应该真正提供服务或堆栈的一部分.例如,容器可能运行MySQL,Apache或redis等等.我能理解为什么这很干净,而且很有意义.
在我们的场景中,我们希望在同一台服务器上托管多个完全独立的Web应用程序(电子商务商店,wordpress站点,静态网站,node.js应用程序),我们希望使用Docker.因此,对于我来说,每个容器完全是自容器更有意义,整个堆叠本身就是例如我可能运行的几个wordpress容器中的每一个都有自己的LAMP安装.
将one-container-one-service模型应用于此场景似乎非常复杂 – 每个应用程序都依赖于系统中的其他容器,而这些容器又将依赖于其他容器.如果您需要特定服务的多个版本,该怎么办?
虽然这似乎是要走的路,但它似乎也可能非常低效?我不是LXC如何工作的专家,但即使一切都是集装箱式的,所有那些运行在系统上的apache2 worker和MysqLds都有相关的开销 – 是否会出现性能问题?
有人有想法吗?
最佳答案
我更喜欢每个应用程序方法的一个容器.如果您将每个服务放在一个图像/容器中,您将获得一些优势:
原文链接:https://www.f2er.com/docker/436067.html>您可以轻松编写新堆栈,使用Apache而不是Nginx.
>您可以重复使用组件,例如我用它来为每个应用程序部署相同的Logstash映像以收集日志.
>您可以使用Docker Index(现在称为Docker Hub)中的预定义服务.如果您需要设置Memcached服务,您只需提取图像即可.
>您可以控制每项服务,例如停止或更新它.如果要更新应用程序,只需重建单个图像,只需上传/下载单个图像.
由于LXC和Docker似乎效率很高,我不介意使用多个容器.这就是Docker的设计目标.而且我认为你会有一个合理的数字,比方说< 100个容器.所以它应该不是问题.