back to main page

by Felix Becker | Oct 28, 2014

What is Docker and why you should care!

Ever came across Docker and wondered what it is? Then you are absolutely right here. The next lines will give you an brief introduction and should give you an impression what Docker is and how to get started.

container at hamburg

Docker gets a lot of well deserved buzz lately so it's time to take a closer look at it.
It is a virtualization technology. Virtualization is nothing new and there are many battle tested different virtualization technologies like VMWare, VirtualBox and Hyper-V already out there. So why docker?
Virtualization today means always to snapshot the whole machine with operating system which causes huge file sizes and slow setup and deployment. The different is, with Docker you can have virtualized Images running in 1 Operation System and have also isolated containers that hosts your application in isolated processes. It is basically like an IOC container for your application where system administrator can still provision the hardware but your application behaves the same and stays isolated in the container.

While Docker was only available for Unix based systems, Microsoft jumped on the train with infrastructure support for windows server and Azure cloud as announced by Scott Guthrie @scottgu here: Docker and Microsoft: Integrating Docker with Windows Server and Microsoft Azure.
And via docker blog here: Docker and Microsoft partner to drive adoption of distributed applications to every enterprise operating system and cloud
This underlines Satya Nadella direction "Mobile fist, cloud first"! and is the right way into the right direction.

With this news it's even more beneficial for you to check out Docker.

cosco faith

By the way this is an image of the 2nd largest container ship, Cosco Faith, which happens to load more than 13.000 containers and is around 366 meters long.

So whats that thing called docker?

www.docker.com

Imagine if you want to ship things to a foreign country. I mean not a handful of things I am talking about a lot. And for the fun part not every piece is alike. They differ in size, weight and form. The shipping industry came up with that concept of shipping containers. Malcom P. McLean came up with the idea and after proposing a standard, he shipped things for the first time in 1956 with containers. This revolutionized the way goods where shipped. No matter what is inside the containers, the container itself is standardized (ISO). Exact the same size, dimensions, doors, locks, shapes, etc. With that every shipping company knows what to expect and with that they optimized ships, trucks, planes so that they know how to handle these containers.

If you ever happened to develop, test and ship software this should sound very familar. We have the developers notebook, the QA or/and the Test-Server and the Production environment. While we still believe in the myth of develop once and run everywhere we get certainly stuck because system behave different in different environments. Different OS, with different software versions, software patches and lots of software and hardware dependencies.
Docker takes the physical shipping approach and applies it to the software industry. With Docker, developers will be able to package their application and hand it over to QA and to OPS and system administrators and it can be executed in the Docker ecosystem. So no matter what's inside a Docker container it's the same to the outside. This is huge because like mentioned above docker decouples installation and deployment from development. System admins can still provision their hardware and have control over the infrastucture while developer can deliver predictable results to any environment.

Where to start?

See my blog post on how to install Docker in 3 easy steps: http://felixnotes.com/install-docker-in-3-easy-steps/
Watch a video Introduction to Docker over on youtube by (dotCloud founder and CTO) Solomon Hykes presented at Twitter HQ. He explains it in details.

Next steps would be to head over to http://docker.com and check out their site and documentation.
Resources

Check out the github repository https://github.com/docker/docker

back to main page