Key Aspects of Containers
- Just as VMs are hardware level (server level) virtualization, containers are OS level virtualization.
- VM – Primary Use Case – Multiple OSes can be supported on a single hypervisor (Virtualization Platform on hardware)
- Container – Primary Use Case – Multiple Apps to be supported on a single platform (Docker Engine)
Containers enable quick, agile development, since they are:
- Can live alongside persistent storage
- Can complement existing virtualization
Additional tooling to coordinate containers across multiple machines is known as container orchestration.
- Marathon on Apache Mesos – first to support Docker orchestration (the gold standard for production clusters).
- Docker Swarm (now part of Docker Engine)
- Docker hub for public storage of Docker images
- Docker registry on-premise storage of Docker Images
- Docker cloud – a managed service for building and running containers
- Docker datacenter – a commercial offering embodying many Docker technologies
- Kubernetes and Kubernetes Engine
- Apache Mesos and Mesosphere
- Cloud Foundry
- Azure Container Services
- Open Container Initiative (OCI)
- CoreOS and rkt
- Canonical and LXD