Docker containers have created a new way of delivering apps for the cloud and servers. But can they also simplify software installation on desktop Linux PCs? That’s what a project called Subuser hopes.
If you’ve ever packaged your software for a Linux distribution such as Ubuntu or Fedora, you know it can be complicated. You have to arrange all your binaries, combine them with configuration files and wrap everything up inside a rather complex package format.
In addition, depending on which Linux distributions you ship for, you may need to repeat this process several times. That’s because different Linux distributions use different packaging formats.
Subuser promises a solution for bypassing all of this delivery overhead by using Docker containers to package and install software on Linux.
The idea is pretty simple. You just Dockerize your app (which you’re probably doing already anyway), then add a special additional JSON file called permissions.json. The file specifies which permissions the app in question has.
Subuser provides a simple CLI tool for finding and installing packages. Its expectations regarding user accounts are a bit different from what you’d expect from traditional Linux software management apps such as yum and apt-get. Otherwise, however, it’s no big leap on the users’ end from the tools they already know and love.
And yes, there is a GUI Subuser app in development, although it doesn’t appear to be very complete as of yet.
New Ways of Thinking About Docker Containers
To be sure, Subuser is not likely to supplant yum and apt-get as the Linux software management tool of choice anytime soon.
Still, the Subuser project is interesting because it shows how Docker containers, which were designed with the cloud and server room in mind, can be leveraged for an entirely different purpose.
Essentially, Subuser brings continuous delivery to the Linux desktop. It streamlines app deployment for developers, while also making it really simple for users to find and run apps on their Linux PCs inside isolated container environments.
So, if nothing else, Subuser is important as a reminder that Docker containers are not only about the data center. They’re going other places, too, including but not limited to desktop Linux.