Let me start by telling you that running Docker in Windows is much easier than the Linux counterparts!
For Windows you will only need to download the installer from here:
Basically, you need to click on *Next* in all the installer pages all the way down to the *Finish* option. Make sure that your physical host supports virtualization.
As you all know Docker does not run native on Windows, so a virtual machine with a minimal version of Linux is created. Having this in mind Docker made available “Docker Toolbox”. The Docker toolbox contains a VM with an image of boot2docker, which is a distribution based on TinyCore Linux. This image allows you to load in memory a Linux VM which in turns allows you to run the Docker client and daemon (engine) on top of Oracle Virtual Box is used.
With the Docker daemon running in the VM you can use Docker API. For those of you who like typing commands in a command line interface -CLI-, a Docker *terminal* (which is MinGW under the hood) is provided. Also, since there is a false belief that Windows Developers can’t cope with CLIs then a GUI to access the Docker API (called Kitematic) is also provided. The following image will give you a glimpse of running a bash like command in Windows! (Note that the VM is actually created by the docker machine binary).
So what do you do with a docker engine? well, starting containers!, so using the run command I pulled a CentOS interactive container and from there I run uname again as displayed in the machine below.
I would like to mention that in my opinion Kitematic is not really necessary. At the moment it shows you a visual representation of the terminal and nicely formatted metadata like the env variables and image history. I found it useful to browse the docker hub without actually using a web browser (you will need a docker hub account). Kitematic is shown in the image below.
Finally I want to share two issues that I had during the installation:
- Firstly, I had to shut down my other virtualization software (a WMware Ubuntu machine in my case).
- Secondly, you might also need to re-add the proper env variables as described in this post from stackoverflow.
Happy dev-ops coding!
Javier Andrés Cáceres Alvis