¿Docker proporciona alguna eficiencia de memory sobre una VM?

Tengo una aplicación con varios microservices y estoy tratando de entender si Docker ofrece alguna ventaja de memory. Mis services son Java 7 / Tomcat 7. Digamos que tengo 20 de ellos; ¿hay alguna ventaja para mí para ejecutar Docker encima de una AWS EC2 Ubuntu 12.04 VM? Entiendo el valor de ejecutar en cualquier lugar para estaciones de trabajo de desarrolladores, etc .; mi pregunta / inquietud principal es sobre la huella de memory de VM. Si ejecuto cada uno de estos 20 services en su propio contenedor, con su propio Tomcat, mi suposition es que necesitaré 20 veces la sobrecarga de memory para Tomcat, ¿verdad? Si esto es cierto, estoy tratando de decidir si Docker es valioso o si hay más sobrecarga de lo que vale. Parece que la mejor propuesta de valor de Docker es sobre un sistema operativo nativo, no tanto en una VM; ¿Hay un enfoque diferente además de EC2 VM en AWS donde Docker es el mejor?

Tengo curiosidad de cómo otros manejarían esta situación o si Docker es incluso una solución en este espacio. Gracias por cualquier información que pueda proporcionar.

No, no hay ventaja de memory sobre la ejecución de 20 processs de Tomcat. El daemon de Docker y los processs auxiliares para los puertos 'de publicación' consumirán memory extra.

La ventaja de Docker es más de 20 máquinas virtuales, que consumirán mucha más memory. Proporciona más aislamiento que solo los processs, por ejemplo, cada process verá su propio sistema de files, interfaz de networking, espacio de process. También Docker proporciona ventajas para el software de empaquetado y envío.