Setting up Docker on Windows using Chocolatey
Run the following command to download and install Chocolatey.
C:\> @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
Verify that we have successfully installed Chocolatey.
C:\> choco -v
Installing Docker Components
We will need the following components in order to create and host Docker containers on our local machine.
- Docker Client
- Docker Machine
- Docker Compose
Docker uses virtual machines to host and run containers. It supports VirtualBox, VMWare, Hyper-V along with some other cloud based virtualization products.
For this exercise we will use VirtualBox. Run the following command to install VirtualBox.
C:\> choco install virtualbox
Docker client is used to manage images and containers. It is used to build images and run containers.
C:\> choco install docker
C:\> docker -v Docker version 1.11.1, build 5604cbe
Containers are run within virtual machines. Docker machine is used to create and manage virtual machines.
C:\> choco install docker-machine
C:\> docker-machine -v docker-machine version 0.7.0, build a650a40
Docker compose is mainly used to compose and run multiple docker containers. This is useful when we have separate containers to run the application, database, etc.
C:\> choco install docker-compose
C:\> docker-compose -v docker-compose version 1.7.1, build unknown
Finally, our first docker container :)
Now that we have all the required components in place, let us create and run our first container.
Use the following command to create a docker virtual machine with the name
C:\> docker-machine create -d virtualbox mydockervm
It will take a while for the virtual machine to be ready. After this command completes, run the following to check the status of the virtual machine.
C:\> docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS mydockervm * virtualbox Running tcp://192.168.99.100:2376 v1.11.1
We can have multiple docker virtual machines running on the same physical machine.
Before we can create our container, we will have to setup some environment variables to tell docker client about our virtual machine.
emacs at the time of writing this post. Since we are on Windows we will use
C:\> docker-machine env --shell powershell mydockervm | iex
Finally let us create and run our first docker container.
C:\> docker run --rm -it ubuntu bash
You should see a bash prompt once the container has started. Type
exit to stop the container.
--rm options tells docker to delete the file system after the container stops.
-it along with
bash in layman terms runs the container in interactive mode where we can use the container’s bash.