Apache 容器是否总是需要较少的资源,还是会产生额外的开销

Apache 容器是否总是需要较少的资源,还是会产生额外的开销,apache,docker,virtual-machine,containers,Apache,Docker,Virtual Machine,Containers,我一直在学习Docker及其优势。这些优势包括但不限于: 快速部署 便携性 保安 隔离 版本控制 重量轻,开销最小 我的问题是: 在一台主机上运行多个应用程序,如齐柏林飞艇、Hadoop、Flume等,压力总是会小一些。在单个docker容器中,还是将应用程序虚拟机添加到容器顶部(docker会产生开销) 在某些情况下,运行的容器数量是否会产生开销,这将比直接从主机上运行所有工具花费更多的资源 在一个容器中运行所有应用会更好吗 关于docker的视频:我找到了这个 在一台主机上运行多个应

我一直在学习Docker及其优势。这些优势包括但不限于:

  • 快速部署
  • 便携性
  • 保安
  • 隔离
  • 版本控制
  • 重量轻,开销最小
我的问题是:

  • 在一台主机上运行多个应用程序,如齐柏林飞艇、Hadoop、Flume等,压力总是会小一些。在单个docker容器中,还是将应用程序虚拟机添加到容器顶部(docker会产生开销)

  • 在某些情况下,运行的容器数量是否会产生开销,这将比直接从主机上运行所有工具花费更多的资源

  • 在一个容器中运行所有应用会更好吗

关于docker的视频:

我找到了这个

在一台主机上运行多个应用程序,如齐柏林飞艇、Hadoop、Flume等,压力总是会小一些。在单个docker容器中,还是将应用程序虚拟机添加到容器顶部(docker会产生开销)

这篇文章似乎表明Docker的开销确实与给定主机系统上运行的容器数量成线性关系。这与Docker是用Golang编写的以及Golang是如何运作的有关

在某些情况下,运行的容器数量是否会产生开销,这将比直接从主机上运行所有工具花费更多的资源

从前面提到的Docker员工的反应来看,似乎情况就是这样。不过,我不会孤立地看待“开销”;由于技术原因,在一台主机上运行40个不同版本的Java容器是不现实的。Docker允许您轻松地执行此操作,因为它隔离了每个进程

因此,如果我可以做一个倾斜的比较,那么在一台主机上管理40个Java应用程序所产生的人力管理开销肯定会比通过前面的容器化所节省的额外系统资源成本更高

在一个容器中运行所有应用会更好吗

假设这里的上下文是系统开销,并考虑到Docker进程开销与运行容器计数的线性扩展,更少的容器=更少的Docker进程开销。与前一个问题类似,您可能会将所有内容集中到一个容器中,从而引入复杂性,这将花费一些可怜的灵魂大量时间进行故障排除或修复


如果您有几个部分(web服务器、应用服务器、数据库、memcache、activemq),将它们放在一个容器中最终会变得非常低效,因为您无法单独扩展它们。如果您需要扩展应用程序服务器,您不能只扩展应用程序服务器,还必须不必要地扩展容器中的所有其他服务。

感谢您的详细回答和引用参考资料!您是否知道如何确定它将创建多少容器(取决于运行的应用程序)以达到机器的限制。我意识到这一数字会因每台机器的不同规格而有所不同。我对树莓皮3的能力特别感兴趣!如果你不太清楚,你能告诉我一个好地方来寻找这个答案吗?@ob1你可以尝试一个简单的docker compose文件,然后使用
docker compose scale
逐个添加容器,同时监视Raspberry Pi上的系统资源。