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 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