Most discussion of Docker’s advantages centers on how containers help developers and admins. But what about end users, the people who use containerized applications? Docker is beneficial to them, too, in many key ways.
Docker was created by developers and admins at dotCloud as a way to help them build and maintain a platform as a service (PaaS) infrastructure. When they released Docker publicly, they were thinking mainly about how it would help other developers and admins. Normal end users—the people who actually use apps deployed through Docker—were not really a part of the conversation at that point.
This has remained largely true as Docker has entered the enterprise. The people driving Docker adoption are developers and admins who see containers as a tool for making their jobs easier. There is no evidence that companies are implementing Docker because application end users want it.
What about Users?
But for Docker to realize its full potential, regular end users have to want and appreciate containers, too. Fortunately for Docker, there are many reasons why containers improve the experience of ordinary users who just want to use a containerized app, rather than develop or administer one.
For ordinary users, Docker’s advantages include:
- Simpler system requirements. Docker containers can run on almost any type of hardware. They also support both of the major server operating systems—Linux and Windows. For users, this means Docker containers can probably run on whatever type of hardware and software environment they already have in place. There is no need to upgrade to install and run containerized apps.
- Security. Running applications inside Docker containers doesn’t magically solve all of your security challenges. But the isolation that containers provide delivers some security advantages. Users wouldn’t get that isolation with traditional application deployment.
- Less disruption. With Docker, upgrading an application is easy. You rebuild the image and deploy it, then replace your existing container instances with new ones. There is no need to restart the whole application or worry about filling your system with cruft as you move from one application version to another. That’s also an advantage for users.
- Resource efficiency. Unlike virtual machines, applications running in Docker containers do not require users to allocate a fixed amount of system resources to them before they start. You don’t have to reserve memory or CPUs for your containers, for example. Instead, containers scale up or down in response to demand, tying up only the resources they are actually using. For end users, that means better overall performance and more efficient use of computing resources.
If you’re an end user, then, there are lots of reasons to like Docker. You don’t have to be involved in application delivery and administration to benefit from containers.