It has been clear that the obvious choice when running Linux on Windows has been using VirtualBox or VMWare. It’s easier. VirtualBox and VMWare allows you to configure host-to-guest folder sharing without having to configure something called Samba/CIFS and you could get decent video performance.
Then again, many of us running Windows do however use Hyper-V on a regular basis. At least for me the Windows Phone emulators runs on Hyper-V. You could dual-boot your Windows (If this is something you’d like then check out Scott Hanselmans “Switch easily between VirtualBox and Hyper-V”), and I did for while. It got tedious. Why can’t we have it all?
Then this product called Docker came along:
1 <em>Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments.</em>
Using Docker on Linux we could package up our apps and distribute them. The apps would run inside containers which is sandbox for running a complete virtualized system inside another system. Basically we’re talking about virtualization. The thing that should strike you is the notion of replacing your README.md file with a Dockerfile that describes how to create a ready-to-use image for running your app.
You can then distribute this Dockerfile and let other people build images off of it, or even better, create images and upload them to Dockerhub for everybody (or privately) to pull and use.
I have begun using it, and even though I’ve hit some problems (mostly due to the fact that I run Windows and Hyper-V) I’m excited to use it and start using it to package our web-apps in particular at work.
This post will be a quick guide on how to get Docker up and running using Boot2Docker or from a plain Ubuntu Server installation.