Understanding application containers
What does it mean to contain an application? We have a pretty good concept these days of containing servers through virtualization. Taking physical hardware, turning it into a Hyper-V virtualization host, and then running many virtual machines (VMs) on top of it is a form of containment for those VMs. We are essentially tricking them into believing that they are their own entity, completely unaware that they are sharing resources and hardware with other VMs running on that host. Although we share hardware resources, we can provide strong layers of isolation between VMs, because we need to make sure that access and permissions cannot bleed across VMs – particularly in a cloud provider scenario, as that would spell disaster.
Application containers are the same idea, at a different level. While VMs are all about virtualizing hardware, containers are more like virtualizing an operating system. Rather than creating VMs to host our applications...