Brief thoughts on Docker

I've been playing with Docker recently, digging in to see if we can use it to decouple our ever growing number of applications at GitHub from the underlying infrastructure.

Initial experiments are promising. I built an image containing a minimal rbenv configuration and was able to get a trivial app up and running - all while watching an episode of [Sons of Anarchy]( I even opened up an amazing pull request when the action slowed.

I am most excited about the Dockerfile. By bundling this with an application, I can specify the preferred execution environment rather than have to fight with whatever is already in play. I can reduce suprise and help enforce consistency. My deployment can be bundled with most of the information needed for a successful execution. The Procfile describes the processes that can be run, the Dockerfile describes the runtime. Mix in some environment variables and you might be in business. There are plenty of details to work out, but this has so much potential.

I encourage everyone to explore Docker, as this or something very much like it will gain traction and change things in the near future.