Mark Shust

Mark Shust

Using Docker Machine on OS X with Dinghy


Dinghy

Note that this blog post was originally written by myself on Mage Inferno’s blog, which no longer exists. Many old user comments have been lost, but this post won’t be!

Today, Dinghy released version 4.0 of their software, based on Docker Machine rather than Vagrant. We are really excited about this, because of some of the shortcomings of vagrant-based VM’s, and because of the new features and capabilities Docker Machine.

Install the brew package

It’s quite easy to setup and get going. If you’ve previously installed Dinghy, do the following:

cd `brew --prefix`/var/dinghy/vagrant && vagrant destroy
rm -rf `brew --prefix`/var/dinghy/vagrant
cd ~
brew reinstall --HEAD https://github.com/codekitchen/dinghy/raw/latest/dinghy.rb

If you are new to Dinghy, install it with the following:

brew install --HEAD https://github.com/codekitchen/dinghy/raw/latest/dinghy.rb

Create the Dinghy VM

Our next step is to create the dinghy VM. This creates a VM that is based on VirtualBox and docker machine. Please note it will take a few minutes for this command to complete:

dinghy create --provider virtualbox

After a successful VM creation, you’ll receive shell output similar to the following:

export DOCKER_HOST=tcp://192.168.99.100:2376
export DOCKER_CERT_PATH=/Users/your-username/.docker/machine/machines/dinghy
export DOCKER_TLS_VERIFY=1
export DOCKER_MACHINE_NAME=dinghy

Be sure to add these lines to your ~/.bash_profile file. Also, don’t copy/paste the above because these lines change for each specific install. (If you have preexisting variables form a previous installation of Dinghy, remember to remove those first).

Test the installation

You may now test the installation. An easy way is to run:

docker ps

This will show all of your docker images. Let’s try testing it out by dropping into a PHP shell:

docker run -it php

Explore all features

Dinghy is a great tool for working with Docker on OS X, and especially Magento 2 because of the very large filesystem, and need for NFS. Be sure to check out all of these features on their GitHub page: