Whether you are a developer, infrastructure, operations or a cloud professional, you ought to learn about Linux Containers, as you would like to dive deep into the system architecture. Linux Container is the next generation of OS virtualization techniques that help get rid of your long time Virtual Machine woes. These Linux containers are called system containers as they are fully fledged Linux machines by themselves, and multiple such Linux system containers can co-exist on the same physical computer in a completely isolated, independent, and efficient manner.
Let's go through a detailed discussion about why to use LXD.
Linux Containers are Super Efficient
If you have ever tried creating 2 or more Linux based virtual machines on your local computer using any hypervisor, you would know that it is a nightmare in terms of system performance. Each Linux VM can be anywhere from 600 MB to 1 GB+ in terms of disk usage, needs a separate OS, static RAM allocation and much more. Even if the VM Operating System is exactly the same as your physical host OS, the VM will need a duplicate copy of the same operating system.
Linux Containers are Disposable
You can literally create, use and dispose of these system containers as and when you need without disturbing your original Linux host. It is a safe bet to say that unless you run a well-defined installation script from the likes of DevStack/Packstack in case of OpenStack or similarly comprehensive and well-tested scripts for server setups from GitHub etc, things will fail many a time before you reach a stable state of your desired project outcome.
Multiple Linux Flavors on a Single Linux Host
Linux Containers are managed using LXC/LXD and its super awesome. To give you a realistic idea, you can run almost all of the widely used Linux distros like Ubuntu, Fedora, Oracle Linux, OpenSuse, Debian, CentOS, Gentoo etc. using predefined LXD images and even customize them further to your needs. You do not need to create multiple VM’s with multiple OS copies to achieve this. Just pull the relevant container image from LXD repository, start the container and you’re good to go.
Experimentation for Variation
This aspect is particularly important for curious souls, especially college students wanting to build their projects based on a plethora of use cases. In the age of cloud computing, Internet and Containerization, there is really no reason for someone to stop experimenting. Cloud Computing allows you to create, use and dispose of almost any infrastructure component that you can imagine today. From a ready to use Machine Learning/Artificial Intelligence toolkit to Tableau Engines, from the Internet of Things frameworks to Python Jupyter Notebooks, from container clusters to database engines; it is all out there waiting for you to be used for your next awesome project scenario.
By now, you must have realized what Linux System Containers allow you to do in terms of machine isolation, independence, efficiency, replication, sharing and disposability. It sounds similar to what Docker containers do. LXD is the perfect blend of the benefits that containers bring and the familiar environment you are used to from a Linux VM. It is like a real virtual machine, but faster. Do share your ideas and suggestions in the comment section below.