You can’t be in technology without hearing about Docker. Docker mania is so sweeping I bet the local diner is about to announce a partnership. That being said, a company with over $1 billion valuation and partnerships with IBM, Google, RedHat, Rackspace, Microsoft and VMware and a host of customers is one that deserves attention. It is amazing to think that Docker 1.0 shipped in June of 2014, although many companies and developers ignored the “Do not use in production” messages on the pre 1.0 releases.
I went to a session given by Andrew Baker, who is a full stack developer based in Washington, DC. He is the instructor for O’Reilly’s Introduction to Docker video tutorial. Thanks to Amazon’s EC2, Andrew was able to provide 150 images to attendees to get hands on. I thought Andrew did a nice job of combining a discussion of the theory of Docker along with getting hands on. His tutorial took us from scratch to a container built with multiple images.
Due to the ratio of attendees to Andrew, support was accomplished via Gitter, with different rooms setup for the attendee OS. I have to compliment Andrew on not going a great on the tutorial but the effort he put into making the tutorial work at the scale.
Docker does away the the hypervisor architectural approach used by VMware and others. The trade off is all containers share the same kernel, meaning you can’t install different guest operating systems. The benefit is greater efficient, even more containers per host than. As you would expect there are features missing from Docker, or its ecosystem of partners, that exist in other virtualization platforms. Those gaps are being addressed quickly. Also containers contain everything required to run the application(s), including dependencies. Add in the fact that a Docker hub, either public or behind your firewall, allows you to download images, which are ready to use containers, there is tremendous power. The public hub can also contain private images, which are not searchable and can only be downloaded by authorized users.
As you would expect many of the images on the Docker hub are official repositories for MySQL, mongoDB, Node.js and so forth. There are also images from individual contributors, that address a wide array of problems or provide ready to use utilities.
I have just touched on the surface benefits of Docker. Docker supports DevOps, allowing containers to move easily without changes between environments. Containers can also easily move between cloud providers. The last is not a developer challenge but explains why larger enterprises are excited about Docker. Developers also have the ability to checkpoint and version containers as well as run a diff con containers, which is a tremendous benefit to developers and system admins as well.
If you haven’t look at Docker because it seems too new, I encourage you to take some time, start with Andrew Baker’s blog and of course Docker.com. Like any IT solution, Docker isn’t a magic bullet but it is worth some time to see if it can solve your challenges. Based on the open attitude at OSCON, expect help with your Docker questions, you just have to ask.
If you don’t know the history of dotCloud and Docker, this Forbes article does a nice job describing how Docker rose from the ashes. It many ways it reminds me of Novell, which at one time ruled the network operating system world. Novell Netware was the software developed to link together propriety hardware developed by the same company. The hardware failed but the software had promise and became a key enabling technology in the client server computing era.