dockerDocker

Containers

  • Containers are isolated groups of processes that have their own file system, system packages, and app dependencies.
  • Containers alleviate all the issues with hidden dependencies or system upgrades on the host machine.
  • Containers are also isolated from each other and the host using kernel isolation features. Containers have limited abilities to interact with each other beyond competing for system resources, unless they’re granted special permissions.
  • Virtual machines run on top of a hypervisor, which sits between the hardware and the VMs. Containers run on top of a container runtime, which sits between the OS and the containers.
  • Docker Desktop runs on top of a Linux VM on Windows and macOS. This VM is managed by the Docker Engine, which is responsible for running containers.
  • While virtual machines use their own kernel, containers share the kernel of the host OS. This makes containers more lightweight and faster to start up than VMs.