No, son tipos diferentes de virtualización.
- La VM Dalvik funciona como un intérprete o compilador justo a tiempo Las aplicaciones instaladas consisten en bytecode Dalvik, pero la CPU sólo sabe ejecutar código máquina ARM o x86, por lo que el DVM lee las instrucciones del bytecode Dalvik y las traduce en instrucciones equivalentes de ARM o x86 para que la aplicación se ejecute. Es similar a un emulador , salvo que ese término suele aplicarse únicamente a los conjuntos de instrucciones que se han implementado de forma nativa en el hardware. (No hay CPUs que entiendan directamente el bytecode de Dalvik.) La VM de Java y el CLR de .NET funcionan de forma similar, y esta explicación también se aplica a ellos.
- Los sistemas de contenedores de Linux, como Docker y LXC, no participan en absoluto en el corriendo de los programas; sólo establecen límites para aislar los programas entre sí y controlar cómo pueden interactuar. Los programas que se ejecutan en un contenedor son programas normales de Linux que también podrían ejecutarse en un sistema Linux normal sin contenedores.
En resumen, los contenedores virtualizan el entorno de software alrededor de un programa, mientras que una VM como Dalvik virtualiza el propio ordenador.