Installing Docker on Mac OS (docker-machine)
As you already know Docker Daemon only works on Linux Operating Systems, and for Mac OS we usually run a virtual machine running any of the recent Linux distribution to setup a Docker Host. The project named machine from Docker Inc. makes it very easy to get this done.
Docker machine can be used to create docker hosts on a variety of infrastructure including your local machine (using any virtualisation software) and on various Public and Private Clouds.
To use docker machine first we should get a latest build from the projects github releases page (https://github.com/docker/machine/releases). Download the latest and appropriate build for your operating system.
Once you have the binary on your machine, move it to /usr/local/bin
. Create /usr/local/bin
if it doesn’t exist already
$ sudo mkdir -p /usr/local/bin
$ sudo cp docker-machine_darwin-amd64 /usr/local/bin/docker-machine
$ sudo chmod +x /usr/local/bin/docker-machine
Now you have docker-machine installed and you can check the version by running,
$ docker-machine -v
docker-machine version 0.4.1 (e2c88d6)
Now to create a docker machine we should have any of the docker-machine supported virtualisation software installed. We will be using VirtualBox, as its free. Get the latest version of VirtualBox from https://www.virtualbox.org/wiki/Downloads and install it.
Once VirtualBox is installed we can use docker-machine to create the docker host.
$ docker-machine create -d virtualbox dev
Creating CA: /Users/athiyara/.docker/machine/certs/ca.pem
Creating client certificate: /Users/athiyara/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /Users/athiyara/.docker/machine/cache...
No default boot2docker iso found locally, downloading the latest release...
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.8.2/boot2docker.iso to /Users/athiyara/.docker/machine/cache/boot2docker.iso...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev
In the above command -d is used to specify the driver using which docker-machine should create the docker host for you. Here docker-machine downloads a copy of boot2docker.iso and creates a VirtualBox VM based on that iso file.
Now you can get the configurations to connect to this docker-machine as shown below
$ docker-machine env dev
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/docker/.docker/machine/machines/dev"
export DOCKER_MACHINE_NAME="dev"
# Run this command to configure your shell:
# eval "$(docker-machine env dev)"
Now you can export the above variables and get your docker client which runs on your macbook to connect to this docker server.
$ eval $(docker-machine env dev)
Now get the latest release of docker client from the github release page (https://github.com/docker/docker/releases) and move the binary to /usr/local/bin and set execute permission.
sudo mv docker-1.8.2 /usr/local/bin/docker
sudo chmod +x /usr/local/bin/docker
Now from the shell you can use docker commands (you should export the variables as shown in the previous step)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
cfa753dfea5e: Pull complete
d7057cb02084: Pull complete
library/busybox:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:16a2a52884c2a9481ed267c2d46483eac7693b813a63132368ab098a71303f8a
Status: Downloaded newer image for busy box:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
busybox latest d7057cb02084 5 days ago 1.096 MB