Previous slide
Next slide
Toggle fullscreen
Open presenter view
IT 3300 : Virtualization
Containers
Overview
Containers?
Containers are an encapsulation of an application with its dependencies
A container is a sandboxed process running on a host machine that is isolated from all other processes running on that host machine.
Are they vms?
no
Vms try to emulate a foreign environment (at least compared to host OS)
Containers make applications portable and self-contained
Known as "operating system virtualization"
Container advantages
share resources with host OS
Can restart apps VERY quickly
Very portable! (contained in a single file)
Very lightweight... Can run a ton of containers compared to VMs on a host
Production fastness?
Can download a container (with all dependencies) and run, without having to spend time tweaking things.
Not platform dependent (not really)
Overview
History
chroot
has been around for decades
LXC (Linux containers project) started in 2008
Docker took existing LXC and made it more user-friendly.
Misc
Instead of virtualizing the underlying hardware, containers virtualize the operating system (typically Linux or Windows) so each individual container contains only the application and its libraries and dependencies.
When developers create new applications, they might not know all of the places it will need to be deployed. Today, an organization might run the application on its private cloud, but tomorrow it might need to deploy it on a public cloud from a different provider. Containerizing applications provides teams the flexibility they need to handle the many software environments of modern IT.
Isolation
compare to vm isolation (each container thinks it has it's own os)
apps don't know about each other
isolation of process vs isolation of the machine (vm)