
These applications – often called jails or containers – manage their own files, their own users, and their own dependencies, but take advantage of the resources available through the host OS. Rather than use a VM, you can run your applications in a way that uses the native functionality of your host OS while still providing isolation. resulting in unnecessary overhead and limited performance compared to native hardware. Four Ubuntu VMs use four separate copies of Ubuntu with their own pre-allocated resources.

However, the biggest benefit of VMs is also their biggest drawback: since the environment is completely self-contained, each VM has to manage a completely separate copy of the guest OS. VMs can be paused, backed up, reverted to previous configurations, or transferred to other computers. Where VMs were once limited to powerful commercial hardware, modern computers are more than capable of hosting several virtual environments using programs such as VirtualBox or VMWare. Imagine a digital matryoshka doll, where the bigger doll (the host OS) contains one or more smaller dolls (the guest OSes). With virtualization, your operating system (OS) hosts an isolated environment where another operating systems runs. The World of Virtual MachinesĪ virtual machine (VM) is essentially a computer running within a computer.

Before we begin with Docker, it’s helpful to know how Docker relates to a similar technology known as virtualization. This is fine for a single-user system like a laptop or desktop, but what happens when you want to share that program with someone else, or migrate it – along with its configuration and settings – to a different computer? What if you wanted to do a clean reinstall without having to hunt for scattered or leftover files? Better yet, what if you could run the application in a completely self-contained environment without it affecting your main system? Docker provides a unique way of accomplishing this, and the technology behind it is quickly gaining traction. How could it be easier – you simply download an installation file, run it, answer a few prompts, and before you know it you have a fresh new application ready to go.

Installing programs is something most people take for granted.
