我有一个带有许多微服务的应用程序,我试图了解Docker是否提供了任何内存优势。我的服务是Java 7 / Tomcat 7.假设我有20个;在AWS EC2 Ubuntu 12.04 VM上运行Docker对我有什么好处?我理解开发人员工作站等随处运行的价值;我的主要问题是关于VM内存占用。如果我使用自己的Tomcat在自己的容器中运行这20个服务中的每一个,我的假设是我需要20倍的Tomcat内存开销,对吧?如果这是真的,我试图决定Docker是否有价值或者是否比它的价值更高。似乎Docker的最佳价值主张是在本机操作系统之上,而不是在VM中;除了Docker最好的AWS上的EC2 VM之外还有不同的方法吗?
我很好奇其他人如何处理这种情况,或者Docker甚至是这个领域的解决方案。感谢您提供的任何见解。
答案 0 :(得分:8)
不,运行20个Tomcat进程没有内存优势。 Docker守护程序和“发布”端口的辅助进程将消耗额外的内存。
Docker的优势在于超过20个虚拟机,这将消耗更多的内存。它比单独的过程提供更多的隔离,例如,每个进程都会看到自己的文件系统,网络接口,进程空间。 Docker还为包装和运输软件提供了优势。