4 ms·
The term "Virtual Machine" has a variety of meanings, depending on who you talk to - Kernels are using LLVMs, Java runs inside a VM, and hypervisors create sand
by stephengillie 11y ago
The term "Virtual Machine" has a variety of meanings, depending on who you talk to - Kernels are using LLVMs, Java runs inside a VM, and hypervisors create sandboxed full-OS VMs. The full-OS VM requires/provides its own binaries, frameworks, and DLLs; not having to depend on the Host to provide these.
A Container is like a Hypervisor, but instead of hosting a full-OS VM, the Container holds a Docker, which is just the code and data. Containers are similar to Application Pools or SQL Instances, and there are "Container Databases" which are much more self-contained than the traditional database. Containers depend on the Container OS for binary files, frameworks, and DLLs.
I like to look at it as a spectrum: Bare metal - Virtual Machine - Container
At one end, you're both running the binaries and scheduling threads. In the middle you're running binaries but not scheduling threads. On the other end, you're depending on the Host to do both.