Docker containers are immensely popular. But like any popular platform, Docker has its limitations and challenges. Here’s a look at four ways in which Docker could improve.
There is no doubt that Docker has matured impressively over the past year or so. Docker is now a feature-rich, production-ready platform for deploying applications—at least on Linux.
But Docker could evolve even more by overcoming challenges that exist in the Docker platform and the container ecosystem. Those challenges include:
- Limited Windows support. Native Docker support for Windows has been officially out for several months. But Docker for Windows is far from being production-ready. It only works on versions of Windows that few people are using. It lacks key features such as full networking support. These things take time to develop, of course. But Docker will need to develop them if it wants to conquer the Windows ecosystem in a real way. Some days, I think that Docker’s announcement of native Windows support was premature, because it came before the technology was really ready, and Docker therefore may have lost its window of opportunity to make a big impact on the Windows world.
- Docker for Mac. Speaking of Docker support for different types of operating systems, Docker might do well to add native support for macOS. Currently, you can run Docker on your Mac, and Docker calls Docker for Mac a “native” application. But the company is using that term loosely, because Docker for Mac actually requires a Linux virtual machine to run. To be sure, few people are going to interested in using macOS to host Docker applications for production. But native support for containers on macOS would help attract more developer interest to Docker. Plus, if Docker can make containers run natively on Windows, people are going to wonder why they don’t also run natively on macOS, which looks much more like Linux under the hood than does Windows.
- A fragmented ecosystem. The Docker ecosystem is now very large. But it’s also increasingly fragmented. There is a clear rift between vendors that favor Swarm (and tend to be aligned with Docker Inc.) and those who are pushing Kubernetes (which is championed by Red Hat, Google and CoreOS). A conflict about runtimes also emerged when Red Hat launched OCID last fall. Competition in the market is not a bad thing, but the Docker ecosystem is starting to look like two ecosystems—the Swarm/Docker one and the Kubernetes one—whose technologies may not remain mutually compatible. When you get to the point where you lose mutual compatibility, healthy competition turns into technical dysfunction.
- What comes after containers? Containers are a big innovation. They let you deploy applications with considerable performance advantages as compared to virtual machines. But what will the next big innovation be after containers have saturated the market? Unikernels are one likely possibility, and Docker expressed a strong interest in that technology when it acquired Unikernels Inc. early last year. But to date, it’s unclear what, if anything, Docker is doing to develop technology other than containers (and integrating that technology into the container stack). Innovating in other ways will be important if Docker is to remain cutting-edge after containers are no longer cutting-edge.
Again, my point is not that Docker is on the wrong track. The company and the platform are doing exceedingly well. But there is always room for improvement.