Docker

Imagine creating and starting a new host in less than a second…

matt@svr2:~$ date; sudo docker run -i -t -h container1 ubuntu date; sudo docker ps -a
 Tue Jul 29 15:57:54 EDT 2014
 Tue Jul 29 19:57:54 UTC 2014
 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 54d30289be49 ubuntu:latest date Less than a second ago Exited (0) Less than a second ago grave_darwin

Boom, done. The first date was displayed from the Ubuntu host OS. The second date was run inside the container.

Sure beats virtualization for development work.

And… let’s get rid of it:

matt@svr2:~$ date; sudo docker rm 54d30289be49; date
 Tue Jul 29 15:59:56 EDT 2014
 54d30289be49
 Tue Jul 29 15:59:56 EDT 2014

No wonder why all the hype. Only took me about 30 minutes to get it going on Ubuntu, and most of that was the download times on my satellite Internet.

Docker comes standard with RHEL7 and I believe can be installed on RHEL6.3+ for those of us using enterprise flavors.

Here were some tips I picked up off a great article from Adron Hall on the subject of getting it going on Ubuntu.  Thankfully I already had a newer Kernel so I was able to skip that part, but the other commands were right on.  Thanks Adron!

I also found a nifty article about running MySQL in a container.  This could be useful for toying with MySQL settings until you get things perfected for your app.  The article mentions a lot of things you wouldn’t think about unless you have worked with containers for a bit.  For example, you would need to make sure your data is not vaporized when you remove your container (unless you really want that).

This could be a marriage made in heaven for those doing development work, especially when you need to make many changes to the underlying OS to figure things out prior to production.  You may hear more from me on this subject!