Docker has swept the software development world since its launch in 2014. Since then, it has grown exponentially, and Docker Hub now has over 400,000 registered users. Every cloud provider is scrambling to support it. Let’s look at what all the buzz is about, and where the Docker ecosystem is headed.
What sparks Docker adoption
As development teams make the move to DevOps, they’re pushing the limits on speed, agility, and portability across the pipeline. Virtual machines (VMs) can’t keep up with the agility needs of DevOps. Many developers have seen the benefits of Docker, and could not ignore it. Instead of virtualising hardware, Docker containers use an underlying Linux OS that connects all the instances of apps running on it. This is much simpler than the traditional VM model.
“(You can) leave behind the useless 99.9% VM junk, leaving you with a small, neat capsule containing your application” - James Bottomley, Parallels‘ CTO of Server Virtualisation.
One of the key reasons for Docker’s rise in the enterprise is that developers champion it. Devs want to be able to move applications easily across the pipeline. Docker enables this. The same container that’s used in development can also be used in testing and production. This eliminates “works on my machine” errors, and importantly, does away with time spent spinning up VMs.
Use in production is growing
Docker is extremely popular with development and testing teams, but Ops has been apprehensive about Docker’s viability in production environments. It’s easy to spin up a container image on a local desktop, but once the app needs to be deployed, there are a whole lot of new challenges. It’s a nightmare for Ops to ensure the same level of security and networking they enjoy with VMs. In terms of data reliability, accidentally deleting a container will also cause you to lose any other container that was linked to it and all of its contents.
While there are challenges, Docker’s use in production is on the rise. For example, at DockerCon this year, many large organisations came forward to talk about their use of Docker in production - like Shopify, Barclays, ING, Electronic Arts, Fox, and Oxford University Press, to name a few. Though we’re a long way off seeing mainstream usage of Docker in live deployments, it’s only a matter of time until the ecosystem evolves and has the right tooling to enable this.
Tooling is maturing
VMs include a whole operating system inside, which makes them bulky, but also more secure and reliable than the more nimble Docker. That, plus the mature ecosystem with tools, make VMs hard to replace overnight. However, there is rapid growth with Docker, and the available tooling is quite impressive already.
Promising third-party tools include Kitematic - a tool that automates the Docker installation and setup process and provides an easy-to-use interface to manage Docker containers. Flocker is another tool that helps in container data management, especially when migrating containers to a different host in the cluster. The availability of third-party tools is always a sign of strength in the ecosystem, and Docker is showing all the signs of a healthy ecosystem.
Concerns about lock-in
Even with so many companies adopting Docker, concerns have been raised about it becoming a walled garden. However, Docker is taking steps to provide open APIs and ensure users have flexibility in how they choose to orchestrate their Docker images.
There are also the concerns about how secure Docker really is. Containers are not as isolated from each other as VMs are. This means a vulnerability in one container can affect the entire cluster of containers. Often, publicly available Docker images contain vulnerabilities such as Shellshock and Heartbleed. In fact, there have been cases where Docker-verified images were found to be insecure.
That said, Docker is taking steps to secure the ecosystem. Docker Bench was released earlier this year by Docker in collaboration with CIS. It is a script that checks Docker images against common security best practices. Security, though the original concern with Docker, is becoming less of an issue as the ecosystem matures.
Docker are here to stay and organisations that are ready to adopt Docker will be prepared for a container-driven driven future.