Containers vs. Virtual Machines

Containers Virtual Machines
Representative Docker1 VirtualBox
Shared HW + OS HW
Daemon Engine Hypervisor
Persistence Image2 (+ Volume3) Image
Instance Container VM
Workflow
  1. Write Docker File
  2. Create Docker Image
  3. Run Container
  1. Get OS Image
  2. Create VM Image
  3. Run VM
Pros
  • Better performance
  • Lower resource consumption
  • OS diversity (for VMs)
  • Stronger isolation

1 Docker uses cgroups (resource restriction) and namespaces (isolation).
2 Provides the initial system setup for the containers.
3 Persists user data to be shared between containers.