A complete one-by-one guide to install Docker on your Mac OS using Homebrew

Beginner’s guide to install and run Docker on Mac OS

Yuta Fujii
Apr 16, 2019 · 5 min read

Configurations

System Version: macOS 10.14.3 (18D109)
Kernel Version: Darwin 18.2.0
Shell: zsh
Package manager: Homebrew

TL;DR

For short, the entire installation process is as follows.

Image for post
Image for post
Docker installation using Homebrew

Step-by-step Installation Process

Docker installation via Homebrew

Note that brew install docker and brew cask install docker is different. Some of the instructions about docker installation on Mac OS use the latter code that installs Docker as an Application, which you can see a good explanation.

⚠️ You can’t run Docker just after installing Docker. If you try, you’ll see:

This is because on macOS the docker binary is only a client and you cannot use it to run the docker daemon, because Docker daemon uses Linux-specific kernel features, therefore you can’t run Docker natively in OS X. So you have to install docker-machine in order to create VM and attach to it. (source)

Docker-Machine installation via Homebrew

⚠️ ️️ You can’t still create a machine because you don’t have VirtualBox. If you try, you’ll see:

So, download VirtualBox. You can only cask install (you can confirm this by running brew search virtualbox).

VirtualBox installation via Homebrew

⚠️It’s possible you’ll fail to install VirtualBox with an error message like this:

Image for post
Image for post

When you do fail, turn on System Preference and see if ‘System software from developer “Oracle America, inc” was blocked from loading.’ If you see that message, click Allow button and try to install again. (Sadly when you still fail to install, Daniel Meechan will help you more.)

Image for post
Image for post
Click “Allow” button and it’s done!

Successfully installed? Great!

Create a new virtual machine

Then, let’s create a machine. You can create a machine by docker-machine create (name)with--driver flag to specify a provide on which the machine is created on. (docker doc)

Run docker-machine ls and you’ll see your ‘default’ machine is now created.

Few more steps. As noted in the output of the docker-machine create command, run the following command to tell the Docker ‘which machine’ to execute docker command to.

And connect your shell to the new machine. Here I’m using zsh (Docker supports bash cmd powershell emacs , fish and SHELL can be OK).

Finally, let’s check that all installation process is achieved correctly!

Image for post
Image for post

When you finish playing around with Docker this time, don’t forget to stop the machine with this command. ( You can check the status docker-machine ls)

What we have done?

All the way long, we did it. What we did are the following things:

  • installed Docker, Docker Machine, VirtualBox
  • docker-machine createcreated a new Docker virtual machine (named ‘default’)
  • docker-machine envswitched your environment to your new VM (named ‘default’)
  • evaluse the docker client(your local computer/terminal) to create, load, and manage containers
  • docker runDocker client (your terminal) created the Docker deamon
  • pulled the first image ‘hello-world’
  • The Docker deamon created a container, streamed out that output to the Docker client
  • docker-machine stopshut down the virtual machine

Docker Machine CLI commands

Thank you all for reading! Hope this helps you a little.

Bye

Yuta.

Resources

Image for post
Image for post

Building A Web Or Mobile App?

Crowdbotics is the fastest way to build, launch and scale an application.

Developer? Try out the Crowdbotics App Builder to quickly scaffold and deploy apps with a variety of popular frameworks.

Busy or non-technical? Join hundreds of happy teams building software with Crowdbotics PMs and expert developers. Scope timeline and cost with Crowdbotics Managed App Development for free.

The fastest way to build your next app.

Yuta Fujii

Written by

Crowdbotics
Yuta Fujii

Written by

Data Scientist(NPL) & Full-stack developer of FinTech. Majored in physics and have 3-year experience in an investment bank( structured finance ). Learn or Die.

Crowdbotics

The fastest way to build your next app.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store