Docker is Feature-Complete, But it Could Offer Even More

Is Docker feature-complete? In other words, has the Docker platform gained all the functionality that its users require to be fully productive and secure when deploying containers? The short answer is yes—but there are more features Docker could stand to gain.

Let’s start by recognizing that “feature-complete” is a tricky term, for two reasons. First, having all of the features users need does not mean that there aren’t additional non-essential enhancements a platform could gain. If feature-complete means that a platform has all the basic features that its users strictly need, there may still be extra things they’d like to have but don’t need.

Second, the quality of being feature-rich depends on what users’ needs are at a given point in time. A platform could be feature-rich by meeting all of its users’ needs today, but stop meeting them tomorrow when their requirements or expectations evolve.

Docker’s Feature-Completeness

Notwithstanding the difficulty of defining feature-complete, I think it’s fair to say that Docker today has reached feature-complete status.

A mature tool chain exists for building, hosting, downloading, starting and managing Docker containers. A relatively robust set of security, monitoring and container orchestration tools are available for Docker (albeit mostly from third-party projects or companies rather than Docker itself).

Docker containers perform as expected and are as stable as any other type of production-ready infrastructure.

Enhancing Docker’s Feature Set

Yet, this doesn’t mean that there’s not more that could be done. While Docker may have all of the features users require of it today, the platform could stand to gain some extra features that would extend Docker’s functionality beyond the basics. More features would also help to keep Docker competitive as users’ needs change in the future.

Examples of beyond-the-basics features that would benefit Docker include:

  • More and better GUIs. Various Docker components offer some GUIs, such as Web UI for Kubernetes. There are also some GUIs designed to allow you to manage your entire Docker container environment, such as the one that comes with Rancher or the open-source Portainer. These are all useful tools, but for most people, using Docker still involves working mostly from the CLI. It would be great for Docker to develop a lightweight, intuitive GUI that is compatible with any type of component you might want to use in your container stack.
  • Straightforward persistent storage. Persistent storage is still a challenge with Docker containers. It’s certainly possible to set up using Docker Data Volumes or a third-party solution (most of which are commercial). But Docker Data Volumes are awkward to work with, and having a vendor tool as the only alternative is not ideal. A more streamlined and simpler persistent-storage solution that is fully open source and built into the core Docker platform would be useful.
  • Stronger support for system containers. While you can use Docker to create and run system containers, Docker is designed primarily to be an application container platform. This works for now because most users are only interested in application containers. Going forward, however, I suspect that system containers will become more popular as users seek a way to build higher-density virtual server environments. Docker would benefit from tools that would assist in creating and managing system containers.
  • Mature Windows support. Native Docker support for Windows 10 and Windows Server 2016 was announced almost a year ago. There were important caveats, however, due to missing features when using Docker containers on Windows. Docker and Microsoft have yet to fix all of them—and Docker actually seemed to backtrack on Windows support when it announced LinuxKit this spring, because LinuxKit is a way to run Docker on Windows without really using native Windows support. This leaves users wondering what the real future of Docker on Windows is, and whether Docker will ever offer fully mature native Windows support.

Again, these are all nice-to-have features, not essentials. Docker as it stands is already quite feature-complete, at least for meeting the needs of most of its users today.

Christopher Tozzi

Christopher Tozzi has covered technology and business news for nearly a decade, specializing in open source, containers, big data, networking and security. He is currently Senior Editor and DevOps Analyst with Fixate.io and Sweetcode.io.

Christopher Tozzi has 254 posts and counting. See all posts by Christopher Tozzi