- Linux Containers (LXC) are a lightweight virtual machine (VM) that let you run on a Linux Kernel without a Hypervisor.
- A container consists of (in the form of processes): ‒ Linux OS. ‒ Single or Multiple applications.
- A container is a group of processes on a Linux machine. ‒ Those processes form an isolated environment. ‒ Inside the container, it looks like a VM. ‒ Outside the container, it looks like normal processes running on the machine.
- They enable multiple isolated Linux systems to run on a single control host.
- Hypervisors are based on emulation of the Hardware
- Containers are about virtualizing the Operating System subsystems
- Containers: Single Kernel
- Hypervisors: Multiple Kernels
- The objective of a container is: ‒ to encapsulate a software component and all its dependencies to be portable. ‒ Any compliant runtime can run without any extra dependency regardless of the underlying machine and container contents
“A LINUX CONTAINER IS THE NEXT EVOLUTION OF THE VM…”
They are Opensource…
- Provision in seconds / milliseconds
- Near bear metal runtime performance
- Only a few MB per container (No need for SAN)
- Just enough Operating System (JeOS)
- Minimal service penalty for the application
- Own Network, Filesystem, Security & Resources
- VM-like agility but still classified as virtualisation
- due to the application being “containerised”
- Not tied to a hypervisor
- HFor big websites and applications: ‒ less overhead than Virtual Machines
- For small websites and applications: ‒ 10-1000x more efficient than Virtual Machines
- Automatic shutdown when there is no traffic
- Boot when a HTTP request arrives
- # Joyent, AWS & Google uses container services engines for Linux Containers to run Containers-as-a-Service (CAAS) offerings which also support Docker / Mesosphere
- Linux Containers have arrived.
- Application Packaging is becoming increasingly important
- Vendors are responding to make containers ready for production environments. e.g. Red Hat OpenShift, Apache Mesos, Cloudfoundry, Google Kubernetes & Microsoft.
- Distributed applications are being created with microservices
- Docker has improved ease of use and image management
- Virtualization is moving into embedded systems, allowing routers, switches to host network apps. e.g QNAP’s