java - Docker 是否在 VM 之上提供任何内存效率?

标签 java tomcat ubuntu amazon-web-services docker

我有一个包含许多微服务的应用程序,我想了解 Docker 是否提供任何内存优势。我的服务是 Java 7/Tomcat 7。假设我有 20 个;在 AWS EC2 Ubuntu 12.04 VM 上运行 Docker 对我来说有什么好处吗?我了解 run-anywhere 对于开发人员工作站等的值(value);我的主要问题/担忧是关于 VM 内存占用。如果我在它们自己的容器中运行这 20 个服务中的每一个,使用它们自己的 Tomcat,我的假设是我将需要 20 倍于 Tomcat 的内存开销,对吗?如果这是真的,我正在尝试确定 Docker 是否有值(value),或者是否比它的值(value)更多的开销。看起来 Docker 的最佳值(value)主张是在 native 操作系统之上,而不是在虚拟机中;除了 AWS 上的 EC2 VM 之外,还有其他方法是 Docker 的最佳选择吗?

我很好奇其他人会如何处理这种情况,或者 Docker 是否是这个领域的解决方案。感谢您提供的任何见解。

最佳答案

不,与运行 20 个 Tomcat 进程相比没有内存优势。用于“发布”端口的 Docker 守护进程和辅助进程将消耗额外的内存。

Docker 的优势是超过 20 个虚拟机,这将消耗大量内存。它提供了比单独的进程更多的隔离,例如每个进程都会看到自己的文件系统、网络接口(interface)、进程空间。 Docker 还为打包和运输软件提供了优势。

关于java - Docker 是否在 VM 之上提供任何内存效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200142/

相关文章:

java - "toString"第三方对象的设计模式

java - 使用 Spring JDBCTemplate 设置 Tomcat JDBC 连接池

java - Tomcat 中 JPA+Spring+Hibernate 的容器管理事务

java - CAS 服务器 Tomcat 8 Java 8 高可用性(HA/集群)

postgresql - 在 cron 中备份 postgres 数据库的问题

java - 我如何从 swing 应用程序调用 GWT 方法

java - 在main方法中调用

linux - 如何在Linux中使用date命令读取ANSI日期

PHP无法读取具有读取权限的文件

java - 如何阻止 Intellij 自动更改未编辑行的缩进?