LXC (Linux Containers) is an operating-system-level partitioning method for running multiple isolated Linux systems on a control host using a single Linux kernel. As RedHat put it, “Linux containers are technologies that allow you to package and isolate applications with their entire runtime environment—all of the files necessary to run. This makes it easy to move the contained application between environments (dev, test, production, etc.) while retaining full functionality.”
By separating areas of responsibility, Linux containers help to reduce conflicts between your operations and development teams. Operations can focus on the infrastructure while the developers can focus on their apps. Since Linux containers are based on open source technology, you get the latest and greatest advancement as soon as they’re available. Container technologies—including CRI-O, Kubernetes, and Docker—help your team simplify, speed up, and orchestrate application development and deployment.
Whatever workload or application you’re working with has access to limited resources when running inside each container. By putting applications inside containers, you may limit its access to RAM, CPU, and filesystem resources. One example of this is limiting application access to 1 Gig of RAM despite the server having 256 Gigs. It’s a way of preventing a drain on OS resources.
Docker created an application packaging standard that makes those workloads very portable. So it not only provides the OS system but also a way of packaging an application using Docker that makes it very portable and easy to deploy across an entire fleet.
Kubernetes, on the other hand, is a way of managing Docker (or similar) containers across a broader fleet with a common set of APIs. The real key innovation for DevOps is its ability to work alongside Docker. Using Kubernetes to manage Docker, one can construct application services and deploy them more widely along the fleet.
In short, Linux Containers allow a developer to wrap up an application with all of the necessary parts, including libraries and other dependencies, and ship it all out as one complete package. To learn more about Linux Services, read our blog here.