Among the many differences between containers and virtual machines is that containers are used almost exclusively in server applications. In contrast, there is a healthy market for virtual machines on both desktop PCs and servers.
Could that ever change? Could we someday see people running containers on desktops for reasons other than development? As containers continue to mature, those are questions worth pondering.
Virtual Machines and Desktop Computing
Hardware virtualization (the type of virtualization that is used to create virtual machines) has been around for decades. Originally, it was used only for servers or other back-end infrastructures.
That started to change in the 2000s, however, when companies including Parallels, VMware and Innotek (the company that created VirtualBox, which is now owned by Oracle) began releasing hardware virtualization tools that let end users create virtual machines on desktop computers.
At the time, there was plenty of demand for these products among desktop users. The SaaS paradigm was in its early days. Most applications still ran locally, and lack of cross-platform compatibility was a real problem. Being able to create a virtual machine so that you could run a Windows XP application on your Mac, or a Windows 98 application on Windows XP or Vista, was valuable.
The shift of many desktop applications to SaaS offerings has made desktop virtualization less important today. But it’s still a common practice among some users for use cases such as testing out a new operating system or creating a virtual PC environment that can be easily destroyed or rolled back whenever desired.
Containers and the Desktop
Since their start, containers have been a server-oriented technology. Their primary use is to deploy the types of applications that you’d host on a server.
It’s difficult to see containers expanding to become a desktop-friendly technology, at least in the near future. For that to happen, several challenges would need to be overcome:
- It would need to become easier to run GUI apps inside a container.
- Containers for Windows—the most popular desktop platform—would need to be more robust. Supporting more versions of Windows would be a start.
- Tools for deploying and managing containerized apps need to become more user-friendly. Virtual machines succeeded on desktops because vendors made easy-to-use tools to manage them. Containers lack similar point-and-click tools.
- Clearer use cases for containers on the desktop must emerge.
That last point is the biggest obstacle to overcome if containers are ever to become a desktop-friendly technology. Today, it’s difficult to think of a good reason to use containers on a desktop, unless you are a developer working on containerized apps.
But it would be closed-minded to think that there will never be a reason to use containers on the desktop. People probably thought the same thing about hardware virtualization before it became widely available for desktops.
More to the point, there are some potential use cases for containers on desktops:
- Having multiple versions of the same application installed at the same time.
- Being able to update applications more securely, by using an immutable infrastructure model instead of the current scheme for pushing updates to desktop apps.
- Using container registries as easily accessible, universal repositories for desktop apps.
Use cases such as these might not appeal to every desktop computer user out there, but it’s not a stretch to imagine power users, at least (the same type of people likely to use virtual machines on a desktop) wanting to use containers for these types of tasks.
Will containers become a thing on the desktop? Certainly not anytime soon. But it could happen eventually.