What Are the Differences Between Containers and VMs?
In the case of traditional virtualization with virtual machines, each virtual machine has its own full operating system, so when running applications built into virtual machines, memory usage can be higher than necessary and virtual machines can begin to use up resources needed by the host.
Different from traditional, containerized applications share a operating system environment (kernel) so they use fewer resources than full virtual machines and reduce pressure on the host's memory.
Traditional virtual machines can take up a lot of disk space: they contain a full operating system and associated tools, in addition to whatever application the VM is hosting.
Containers are relatively light: they contain only those libraries and tools needed to make the containerized application run, so they are more compact than virtual machines and start more quickly as well.
Maintenance & Updates
When it comes to updating or patching the operating system, traditional machines must be updated one-by-one: each guest OS must be patched separately.
With containers, only the operating system of the container host (the machine hosting the containers) must be updated. This simplifies maintenance significantly.