Homebrew Docker Desktop

As part of my job at Workiva I work quite a bit with containers and I need to install Docker Desktop on my Mac running Big Sur. Instead of just downloading and installing the DMG from Docker, I instead wanted to install just the command line with Homebrew.

The first step, of course, is to install Homebrew. I won’t replicate those instructions here. Once you’ve done that and checked the installation, proceed with the following instructions.

Homebrew’s package index. Names: Docker Desktop, Docker Community Edition, Docker CE App to build and share containerized applications and microservices. If you've already installed it this way, first uninstall with brew uninstall docker. To install Docker Desktop, run: brew install homebrew/cask/docker Launch docker from your /Applications folder once and enter your password, then you can run commands like docker -version to verify the CLI is working. Sep 14, 2021 Installing Docker Desktop with Homebrew. If you’d prefer a graphical interface to Docker, Docker Desktop is your friend. If you haven’t installed Docker Engine yet, you can install Docker Desktop. Do not try to install Docker Engine with Docker Desktop. Docker engine requires VirtualBox, as shown earlier, which can conflict with Docker Desktop.

Install docker and docker-machine

Install the actual docker and docker-machine packages using Homebrew:

Install virtualbox

Docker will need a virtualization system for running containers, I use virtualbox. Install it using Homebrew:

You may need to provide your administrator password to complete the installation. In addition, you will also probably need to allow the virtualbox system extension permission to run. A popup will open the Security & Privacy tab in System Preferences. Authenticate if needed and allow the extension to run. A restart will be required to load the extension.

Configure docker and docker-machine

The next step is to configure docker-machine to use virtualbox as the default virtualization environment:

After a bunch of output, a default configuration environment will be available, and the docker daemon will be running with the default environment. You can list the default machine with the docker-machine ls command.

To configure the docker command which docker-machine instance to use, execute the following command in your terminal:

Finally, test to make sure that everything is installed correctly by running the hello-world container. Docker will download the container from Docker Hub and you should see output from the container:

Starting and stopping the docker-machine

I prefer to control when the docker-machine is running. Use the following commands to start and stop the background docker daemon:

Shell aliases

I have a few aliases defined in my .zshrc to help control docker-machine and configure docker:

It’s always best to reconfigure docker after starting the machine in case new IP addresses have been allocated. Also, I prefer up and down instead of start and stop for some odd reason.

For macOS (both amd64 and arm64) and Linux users, we recommend installing and upgrading via Homebrew (macOS) or Homebrew on Linux (Linux): brew install drud/ddev/ddev If you would like more frequent 'edge' releases then use brew install drud/ddev-edge/ddev instead.). HOMEBREWSIMULATEMACOSONLINUX If set, running Homebrew on Linux will simulate certain macOS code paths. This is useful when auditing macOS formulae while on Linux. Implies HOMEBREWFORCEHOMEBREWONLINUX. HOMEBREWSKIPORLATERBOTTLES If set along with HOMEBREWDEVELOPER, do not use bottles from older versions of macOS. This is useful in. MacOS If you're on macOS, we recommend installing rbenv with Homebrew. $ brew install rbenv Note that this also installs ruby-build, so you'll be ready to install other Ruby versions out of the box.

DDEV is an open source tool that makes it dead simple to get local PHP development environments up and running within minutes. It's powerful and flexible as a result of its per-project environment configurations, which can be extended, version controlled, and shared. In short, DDEV aims to allow development teams to use Docker in their workflow without the complexities of bespoke configuration.

System Requirements¶

  • Docker version 18.06 or higher. Linux users make sure you upgrade docker-compose and do the post-install steps
  • docker-compose 1.21.0 and higher (bundled with Docker in Docker Desktop for Mac and Docker Desktop for Windows)
  • OS Support
    * macOS Mojave and higher (macOS 10.14 and higher; it should run anywhere Docker Desktop for Mac runs (Current Docker Desktop has deprecated macOS 10.13 High Sierra, but Docker Desktop versions prior to can still work with DDEV-Local on High Sierra.)
    * Linux: Most Linux distributions which can run Docker-ce are fine. This includes at least Ubuntu 16.04+, Debian Jessie+, Fedora 25+. Make sure to follow the docker-ce post-install steps
    * Windows 10 (all editions) with WSL2 (version 1903.1049, 1909.1049, 2004 or later)
    * (Non-WSL2) Windows 10 Home, Pro, or Enterprise with Docker Desktop for Windows
  • Architecture Support
    * AMD64 is supported on Windows 10 (with either traditional Windows or WSL2), macOS, and Linux.
    * ARM64 machines are currently supported on Linux and in WSL2 in Windows ARM64 computers.
    * Apple Silicon M1 (ARM64) is supported in v1.17-alpha1+ (edge versions).

Using DDEV alongside other development environments¶

DDEV by default uses ports 80 and 443 on your system when projects are running. If you are using another local development environment you can either stop the other environment or configure DDEV to use different ports. See troubleshooting for more detailed problem solving.


When upgrading, please run ddev poweroff and check the release notes for actions you might need to take on each project.

Docker Installation¶

Docker and docker-compose are required before anything will work with DDEV. This is pretty easy on most environments; see the docker_installation page to help sort out the details, especially on Windows and Linux.

Homebrew - macOS/Linux¶

For macOS (both amd64 and arm64) and Linux users, we recommend installing and upgrading via Homebrew (macOS) or Homebrew on Linux (Linux):

If you would like more frequent 'edge' releases then use brew install drud/ddev-edge/ddev instead.)

As a one-time initialization, run mkcert -install. Linux users may have to take additional actions as discussed below in 'Linux mkcert -install additional instructions'.

Later, to upgrade to a newer version of DDEV-Local, run:

Installation or Upgrade - Windows (WSL2)¶

This is the recommended installation method for all Windows users that are on Windows 10 1903.1049, 1909.1049, 2004 or higher If you don't have this version yet, or if you don't want to use WSL2, please follow the legacy instructions for Windows below.

All Windows 10 editions (including Windows 10 Home) support WSL2. Docker Toolbox support for DDEV has been removed. If you're already familiar with DDEV on Windows, you might have been using NFS for better filesystem performance. You won't need NFS anymore once you switch to WSL2, since it provides awesome filesystem performance out of the box.

The WSL2 install process involves:

  • Installing Chocolatey package manager (optional).
  • One time initialization of mkcert.
  • Installing WSL2, setting version 2 as the default version, and installing a distro like Ubuntu.
  • Installing or upgrading to the latest Docker Desktop for Windows with WSL2 enabled.
  • Installing DDEV inside your distro.

We'll walk through these in more detail. You may prefer other techniques of installation or may not need some steps, but this is the full recipe:

  1. If you have previously installed Docker Toolbox, please completely uninstall Docker Toolbox.
  2. Chocolatey: We recommend using Chocolatey for Chocolatey installing required Windows apps like mkcert. In an administrative PowerShell, Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  3. In an administrative PowerShell: choco install -y mkcert
  4. In administrative PowerShell, run mkcert -install and answer the prompt allowing the installation of the Certificate Authority.
  5. In administrative PowerShell, run the command setx CAROOT '$(mkcert -CAROOT)'; If ($Env:WSLENV -notlike '*CAROOT/up:*') { setx WSLENV 'CAROOT/up:$Env:WSLENV' }. This will set WSL2 to use the Certificate Authority installed on the Windows side.
  6. Install WSL2. In an administrative PowerShell Enable-WindowsOptionalFeature -Online -FeatureName $('VirtualMachinePlatform', 'Microsoft-Windows-Subsystem-Linux') (Your computer will reboot.) (See detailed documentation.)
  7. Download and install the WSL2 kernel from WSL2 kernel upgrade page.
  8. Set the default WSL version to 2: wsl --set-default-version 2 You may be prompted to upgrade the WSL2 kernel.
  9. Install a WSL2 distro from the Microsoft Store. We recommend Ubuntu. (You do not have to log in to the Microsoft Store, just 'X' out the dialog box requesting that.)
  10. Docker Desktop for Windows: If you already have the latest Docker Desktop, configure it in the General Settings to use the WSL2-based engine. Otherwise install the latest Docker Desktop for Windows and select the WSL2-based engine (not legacy Hyper-V) when installing. Install via Chocolatey with choco install docker-desktop or it can be downloaded from download.docker.com. Start Docker. It may prompt you to log out and log in again, or reboot.
  11. Go to Docker Desktop settings > Resources > WSL integration > enable integration for your distro (now docker commands will be available from within your WSL2 distro).
  12. Double-check in PowerShell: wsl -l -v should show three distros, and your Ubuntu should be the default. All three should be WSL version 2.
  13. Double-check in Ubuntu (or your distro): echo $CAROOT should show something like /mnt/c/Users/<you>/AppData/Local/mkcert
  14. Check that docker is working inside Ubuntu (or your distro): docker ps
  15. Optional: If you prefer to use the Windows ddev instead of working inside WSL2, install it with choco install -y ddev. The Windows ddev works fine with the WSL2-based Docker engine.
  16. Open the WSL2 terminal, for example Ubuntu from the Windows start menu.
  17. Install Homebrew: /bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)' (See https://brew.sh/.)
  18. Add brew to your path as prompted, for example, echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> ~/.profile && source ~/.profile
  19. brew install gcc && brew install drud/ddev/ddev
  20. sudo apt-get update && sudo apt-get install -y xdg-utils to install the xdg-utils package that allows ddev launch to work.

That's it! You have now installed DDEV on WSL2. If you're using WSL2 for ddev (recommended), remember to run all ddev commands inside the WSL2 distro.

Make sure you put your projects in the Linux filesystem (e.g. /home/), not in the Windows filesystem (/mnt/c), because you'll get vastly superior performance on the Linux filesystem.

Note that nfs-mount-enabled (and running NFS) are not required on WSL2 because it's perhaps faster without NFS.

Installation or Upgrade - Windows (legacy)¶

  • If you use chocolatey (recommended), then you can just choco install ddev git from an administrative shell. Upgrades are just ddev poweroff && choco upgrade ddev.
  • A windows installer is provided in each ddev release (ddev_windows_installer.<version>.exe). Run that and it will do the full installation for you. Open a new git-bash or PowerShell or cmd window and start using ddev.
  • Most people interact with ddev on Windows using git-bash, part of the Windows git suite. Although ddev does work with cmd and PowerShell, it's more at home in bash. You can install it with chocolatey using choco install -y git.

Installation/Upgrade Script - Linux and macOS (ARM/ARM64 and AMD64 architectures)¶

Windows WSL2, Linux and macOS users can use this line of code to your terminal to download, verify, and install (or upgrade) ddev using our install script. Note that this works with both amd64 and arm64 architectures, including Surface Pro X with WSL2 and 64-bit Raspberry Pi OS. It also works with the new macOS Apple Silicon M1 machines.

The installation script can also take a version argument in order to install a specific version or a prerelease version. For example,

Later, to upgrade DDEV to the latest version, just run ddev poweroff and run the script again.

Manual Installation or Upgrade - Linux and macOS¶

You can also easily perform the installation or upgrade manually if preferred. DDEV is just a single executable, no special installation is actually required, so for all operating systems, the installation is just copying DDEV into place where it's in the system path.

  • ddev poweroff if upgrading
  • Download and extract the latest ddev release for your architecture.
  • Move ddev to /usr/local/bin: mv ddev /usr/local/bin/ (may require sudo), or another directory in your $PATH as preferred.
  • Run ddev to test your installation. You should see DDEV's command usage output.
  • As a one-time initialization, run mkcert -install, which may require your sudo password. Linux users may have to take additional actions as discussed below in 'Linux mkcert -install additional instructions. If you don't have mkcert installed, you can install it from https://github.com/FiloSottile/mkcert/releases. Download the version for the correct architecture and sudo mv <downloaded_file> /usr/local/bin/mkcert && sudo chmod +x /usr/local/bin/mkcert.

Installation via package managers - Linux¶

The preferred Linux package manager is Homebrew : brew install drud/ddev/ddev

We also currently maintain a package on Arch Linux (AUR)

As a one-time initialization, run mkcert -install, which may require your sudo password. See below for additional information.

Linux mkcert -install additional instructions¶

The mkcert -install step on Linux may provide you with additional instructions.

Docker hub

On variants of Linux you may be prompted for additional package installation to get certutil installed, but you can follow the instructions given by mkcert:

$ mkcert -install
Created a new local CA at '/home/username/.local/share/mkcert' 
Installing to the system store is not yet supported on this Linux  but Firefox and/or Chrome/Chromium will still work.
You can also manually install the root certificate at '/home/username/.local/share/mkcert/rootCA.pem'.
Warning: 'certutil' is not available, so the CA can't be automatically installed in Firefox and/or Chrome/Chromium! ⚠️
Install 'certutil' with 'apt install libnss3-tools' or 'yum install nss-tools' and re-run 'mkcert -install' 

(Note the prompt Installing to the system store is not yet supported on this Linux, which can be a simple result of not having /usr/sbin in the path so that /usr/sbin/update-ca-certificates can be found.)

Windows and Firefox mkcert -install additional instructions¶

Homebrew Docker Desktop Windows 10

The mkcert -install step on Windows does not work for the Firefox browser.
You need to add the created root certificate authority to the security
configuration by your self:

  • Run mkcert -install (you can use the shortcut from the start menu for that)
  • Run mkcert -CAROOT to see the local folder used for the newly created root
    certificate authority
  • Open the Firefox settings
  • Enter certificates into the search box on the top
  • Click to Show certificates...
  • Select the tab Certificate authorities
  • Click to Import...
  • Go to the folder where your root certificate authority was stored
  • Select the file rootCA.pem
  • Click to Open

You should now see your CA under mkcert development CA.


For instructions to uninstall DDEV-Local see Uninstallation.

Support and User-Contributed Documentation¶

We love to hear from our users and help them be successful with DDEV. Support options include:

  • DDEV Stack Overflow for support and frequently asked questions. We respond quite quickly here and the results provide quite a library of user-curated solutions.
  • DDEV issue queue for bugs and feature requests
  • The gitter drud/ddev channel (it's easy to log in many different ways)
  • The #ddev channels in Drupal Slack, TYPO3 Slack for interactive, immediate community support.
  • ddev-contrib repo provides a number of vetted user-contributed recipes for extending and using DDEV. Your contributions are welcome.
  • awesome-ddev repo has loads of external resources, blog posts, recipes, screencasts, and the like. Your contributions are welcome.
  • Twitter with tag #ddev will get to us, but it's not as good for interactive support, but we'll answer anywhere.

Homebrew Docker Desktop Game

You can get macOS PostgreSQL packages from several different sources.

Interactive installer by EDB

Download the installercertified by EDB for all supported PostgreSQL versions.

This installer includes the PostgreSQL server, pgAdmin; a graphical tool for managing and developingyour databases, and StackBuilder; a package manager that can be used to download and installadditional PostgreSQL tools and drivers. Stackbuilder includes management,integration, migration, replication, geospatial, connectors and other tools.

This installer can run in graphical, command line, or silent install modes.

The installer is designed to be a straightforward, fast way to get up and running withPostgreSQL on macOS.

Advanced users can also download azip archiveof the binaries, without the installer.This download is intended for users who wish to include PostgreSQL as part of another application installer.

Platform support

The installers are tested by EDB on the following platforms. They will generally work on newer versions of macOS as well:

PostgreSQL Version64-bit macOS Platforms
1310.13 - 10.15
1210.12 - 10.14
1110.12 - 10.14
1010.10 - 10.12
9.610.10 - 10.12
9.510.8 - 10.10


Postgres.app is a simple, native macOS app that runs in the menubar without the need of an installer. Open the app, and you have a PostgreSQL serverready and awaiting new connections. Close the app, and the server shuts down.


PostgreSQL can also be installed on macOSusing Homebrew. Please see the Homebrewdocumentation for information on how to install packages.

Macos Homebrew Wine

A listof PostgreSQLpackages can be found using the Braumeister search tool.

Macos Homebrew Apple Silicon


PostgreSQL packages are also available for macOS from theMacPorts Project. Please see theMacPorts documentation for information on how to install ports.

A list ofPostgreSQL packagescan be found using the portfiles search tool on the MacPorts website.

Macos Homebrew Update


Docker Hub

PostgreSQL packages are available for macOS from theFink Project.Please see the Fink documentation for information on how to install packages.

Homebrew Docker Desktop Version

A list ofPostgreSQL packagescan be found using the package search tool on the Fink website.

Most Viewed Posts