Install Docker Toolbox on a Mac via command line

MacosAutomationDockerDocker Toolbox

Macos Problem Overview


I am trying to automate setting up a developer environment on Mac. Part of that setup is installing the Docker Toolbox. I cannot find any documentation on how do to this via command line. How can I automate this installation (must be triggered via command line)?


Update: As pointed out in a commend by Dennis > Docker for Mac now exists, which is an alternative to Docker Toolbox. You can get it via the homebrew cask: brew cask install docker; open /Applications/Docker.app

Macos Solutions


Solution 1 - Macos

Deprecation Warning

Docker Toolbox and Docker Machine have both been deprecated. Docker Desktop is the officially recommended replacement.

Original Answer

I found that Docker Toolbox is available via brew/cask

# Install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install Cask
brew install caskroom/cask/brew-cask
# Install docker toolbox
brew cask install docker-toolbox

Once Docker Toolbox is installed you can setup your docker environment using the Get started with Docker Machine guide.


# create the docker machine
docker-machine create --driver "virtualbox" myBoxName

# start the docker machine
docker-machine start myBoxName

# this command allows the docker commands to be used in the terminal
eval "$(docker-machine env myBoxName)"

# at this point can run any "docker" or "docker-compose" commands you want
docker-compose up

At the end of this process, add eval "$(docker-machine env myBoxName)" to your .bash_profile or you will get the following error when you open a new shell or terminal.

"Cannot connect to the Docker daemon. Is the docker daemon running on this host?"

If you start the docker container after opening the terminal, you can either run eval "$(docker-machine env myBoxName)" manually, or reload your bash profile (source ~/.bash_profile).

Solution 2 - Macos

Docker Toolbox is a good option but currently it seems like Docker for Mac/Windows is becoming better and Docker is investing a lot of time polishing the app. I recommend installing Docker mainly for 2 reasons:

  1. It doesn't interfere with Docker-Toolbox
  2. It runs on HyperKit and therefor runs on you own localhost rather than a Docker Machine IP.

The installation is quite simple:

brew cask install docker

To install docker-toolbox you can refer the above post

Solution 3 - Macos

Homebrew Updates

I can clear up a few things:

brew cask commands were deprecated on 2020-12-01 with the release of Homebrew 2.6.0. Starting then, all brew cask commands succeeded but displayed a warning informing users that the command would soon be disabled. The message also provides the appropriate replacement.
brew cask commands were disabled on 2020-12-21 with the release of Homebrew 2.7.0. Starting then, all brew cask commands failed and displayed a warning informing users that the command is disabled. The message also provides the appropriate replacement.

With the release of Homebrew 2.8.0 (release date TBD), this disable message will be removed.

 The alternative to brew cask <command> is to use brew <command>. In many cases, you can add the --cask flag to specify casks only. For example, brew cask install atom is now brew install atom or brew install --cask atom. There are some casks that share a name with formulae (e.g. wireshark) so adding --cask ensures that the cask is installed not the formula.

I'm not much of an ansible user but I'm happy to try and help out if needed. Feel free to point me in the right direction if anything is blocked and could use feedback from the Homebrew side of things.

Now you can run like

brew install --cask docker 

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMike RylanderView Question on Stackoverflow
Solution 1 - MacosMike RylanderView Answer on Stackoverflow
Solution 2 - MacosAlexander LunaView Answer on Stackoverflow
Solution 3 - MacosAli Hassan MirzaView Answer on Stackoverflow