Introduction to Containers
Kubernetes Container Engine
Containers
Before: Building applications on individual servers
Dedicated server: Application code Dependencies Kernel Hardware -> Deployment ~months, Low utilization and not portable
Virtual machine: Application code Dependencies Kernel —– Hardware + hypervisor -> Deployment ~days(mins), Improved utilization hypervisor specific Problem: Cannot install the same application or multiple versions of the same application into one single VM: dependency errors, conflicts => many virtual machines
Container Application code Dependencies Kernel + Container runtime Hardware -> Deployment ~mins(sec), portable, very efficient
Benefits: Code works the same everywhere:
-
Across dev, test, and prod
-
Across bare-metal, VMs, and cloud
-
Packaged apps speed development:
-
Agile creation and deployment
- Continuous integration/deliver
- Single file copy
Path to microservices:
- Introspectable, isolated, and elastic
Containers use a layered file system with only the top layer writable
Containers promote smaller shared images
In the real world you’ll push and pull your image from a registry