If you're running MacOS or Windows you have a few options for installing Docker. There's even a third way too, and we'll compare them here.
Quick Jump: OS and Hardware RequirementsPros and ConsWhich One Should I Use?
If you’re on MacOS or Windows you can install Docker with:
- Docker for Mac / Windows (now known as Docker Desktop)
- Docker Toolbox
- Running your own Virtual Machine and installing Docker yourself
All 3 of those options have their own pros and cons and in this article we’re going to cover them. If you’re looking for a high level overview of what Docker for Mac / Windows and Docker Toolbox is, then check out this article on getting to know Docker’s ecosystem.
The preferred choice for millions of developers that are building containerized apps. Docker Desktop is a tool for MacOS and Windows machines for the building and sharing of containerized applications and microservices. Access Docker Desktop and follow the guided onboarding to build your first containerized application in minutes.
OS and Hardware Requirements
- Description The Docker CLI doesn't work anymore when I updated Docker Desktop to version 184.108.40.206 (on MacOS). Steps to reproduce the issue: Update Docker Desktop (via automatic updates) to version 220.127.116.11 Run in an Terminal: docker ps Des.
- Docker Desktop is an application for MacOS and Windows machines for the building and sharing of containerized applications and microservices. Docker Desktop delivers the speed, choice and security you need for designing and delivering containerized applications on your desktop.
- In opposition to Docker toolbox, Docker for Windows and Docker for Mac are designed to give you the feeling that Docker is running directly on your OS, so they use lightweight virtual machines running under lightweight hypervisors (instead of VirtualBox) handled directly by the docker executable.
It’s helpful to know what you can install before we compare everything, so let’s do that:
Docker for Mac (Docker Desktop)
Docker for Mac requires that you’re running Yosemite 10.10.3+ or newer but it’s worth mentioning that you should upgrade to 10.11+ because 10.10.x releases are considered “use at your own risk”.
You can run VirtualBox 6+ alongside Docker for Mac. This is pretty useful because you might have some legacy apps running in Vagrant / VirtualBox to deal with (I know I do!).
Docker for Windows (Docker Desktop)
As of May 27th 2020, Microsoft released Windows 10 build 2004 (Spring 2020) that allows you to run Docker Deskop on all editions of Windows 10, including Home.
For years prior to that you could only run it on Windows Pro, Enterprise or any edition that had Hyper-V available, but since this new Spring 2020 build WSL 2 is available and Docker Desktop can be configured to use it.
You can also run VirtualBox 6+ alongside Docker Desktop too, although the performance is so-so, but you can use this in a pinch if you have old legacy apps that use Vagrant and VirtualBox together.
If you can’t run Docker for Mac or Docker for Windows then there’s the Docker Toolbox. It has much less strict requirements. As long as you can run VirtualBox then you’re good to go (Docker Toolbox manages this for you).
It works all the way back to MacOS 10.8 and Windows 7 (yep, even Home editions).
Your own Virtual Machine
Docker will happily run inside of VirtualBox, VMWare or any other Type 1 / 2 Hypervisor that’s running a major distribution of Linux.
So, similarly to the Docker Toolbox, rolling your own VM has the same requirements.
Pros and Cons
Now for the good stuff!
Docker for Mac / Docker for Windows (Docker Desktop)
Offers the most “native” experience, you can easily use any terminal you you want since Docker is effectively running on
localhostfrom MacOS / Windows’ POV.
Docker is heavily developing and polishing this solution.
On certain MacOS hardware combos the volume performance can be a little slow.
I can legit say there are not any “wow this sucks!” cons for Windows, it’s really solid.
- Offers an “out of the box” Docker experience if you have no other choice.
You need to either use the Docker Quickstart Terminal, or configure your own terminal to connect to the Docker Daemon running a VM.
Not a native solution, so you’ll need to access your Docker Machine’s IP address if you’re developing web apps. Example:
Unless you jump through hoops, your code needs to live in your Windows user directory such as
C:UsersNicksrcmyapp. Otherwise Docker won’t be able to find it.
Suffers from typical VirtualBox edge case bugs and mount performance issues.
Your own Virtual Machine
I’m not going to bother listing a pros and cons here because I wouldn’t recommend doing this UNLESS you’re stuck on Windows 7. But more on that in a bit…
Which One Should I Use?
If you’re interested in Docker, you’re a smart person and you probably came to the conclusion that using Docker for Mac or Docker for Windows is a good idea as long as you can run it.
My recommendation would be to try Docker for Mac / Windows first, and test it against your actual use cases. The performance issues may or may not be a concern, especially since everyone’s needs and computer specs are different.
I’ve been using Docker Desktop on Windows for full time development since late 2018 and it’s been nothing short of fantastic. Currently I use it with WSL 2, but it was really good with WSL 1 along with Hyper-V too.
On Windows 7 and Like the Idea of Running Linux Too?
Docker For Mac K8s
I want to mention a “roll your own VM” solution for Windows users because I feel like there’s an even better way to run Docker on Windows if you also like Linux and are stuck not being able to use Windows 10.
It involves running VMWare Player in a special mode called “Unity mode”. This basically allows you to run Windows and Linux together seamlessly as 1 operating system.
There’s no dual booting and Linux applications (even graphical apps) run in their own floating windows. Then you can install Docker natively on Linux inside of the VM.
The performance is excellent and the entire set up is free too.
I used this set up for about 5 years until Docker Desktop was available. It gives you the best of both worlds. For example, I run high end audio / video apps on Windows while recording courses and screencasts that cover Linux content. It all works great (even for full time development).
You can watch a video guide and see screenshots on how to do that in this post on creating an awesome Linux development environment in Windows.
Are you using the Docker Toolbox, Docker for Mac / Windows or your own VM?
Estimated reading time: 6 minutes
Docker Desktop for Mac is the Community version of Docker for Mac.You can download Docker Desktop for Mac from Docker Hub.
By downloading Docker Desktop, you agree to the terms of the Docker Software End User License Agreement and the Docker Data Processing Agreement.
Docker For Mac Vs Docker Machine 2020
What to know before you install
Relationship to Docker Machine: Installing Docker Desktop on Mac does not affect machines you created with Docker Machine. You have the option to copy containers and images from your local
default machine (if one exists) to the Docker Desktop HyperKit VM. Whenyou are running Docker Desktop, you do not need Docker Machine nodes running locally (or anywhere else). With Docker Desktop, you have a new, nativevirtualization system running (HyperKit) which takes the place of theVirtualBox system.
Your Mac must meet the following requirements to successfully install Docker Desktop:
Mac hardware must be a 2010 or a newer model, with Intel’s hardware support for memory management unit (MMU) virtualization, including Extended Page Tables (EPT) and Unrestricted Mode. You can check to see if your machine has this support by running the following command in a terminal:
If your Mac supports the Hypervisor framework, the command prints
macOS must be version 10.14 or newer. That is, Mojave or Catalina. We recommend upgrading to the latest version of macOS.
If you experience any issues after upgrading your macOS to version 10.15, you must install the latest version of Docker Desktop to be compatible with this version of macOS.
Note: Docker supports Docker Desktop on the most recent versions of macOS. Docker Desktop currently supports macOS Mojave and macOS Catalina.
As new major versions of macOS are made generally available, Docker stops supporting the oldest version and support the newest version of macOS.
At least 4 GB of RAM.
VirtualBox prior to version 4.3.30 must not be installed as it is not compatible with Docker Desktop.
What’s included in the installer
The Docker Desktop installation includes Docker Engine, Docker CLI client, Docker Compose, Notary, Kubernetes, and Credential Helper.
Install and run Docker Desktop on Mac
Docker.dmgto open the installer, then drag the Docker icon to the Applications folder.
Docker.appin the Applications folder to start Docker. (In the example below, the Applications folder is in “grid” view mode.)
The Docker menu in the top status bar indicates that Docker Desktop is running, and accessible from a terminal.
If you’ve just installed the app, Docker Desktop launches the onboarding tutorial. The tutorial includes a simple exercise to build an example Docker image, run it as a container, push and save the image to Docker Hub.
Click the Docker menu () to seePreferences and other options.
Select About Docker to verify that you have the latest version.
Congratulations! You are now successfully running Docker Desktop.
If you would like to rerun the tutorial, go to the Docker Desktop menu and select Learn.
Uninstall Docker Desktop
To unistall Docker Desktop from your Mac:
- From the Docker menu, select Troubleshoot and then select Uninstall.
- Click Uninstall to confirm your selection.
Docker For Mac Dmg
Note: Uninstalling Docker Desktop will destroy Docker containers and images local to the machine and remove the files generated by the application.
Switch between Stable and Edge versions
Docker Desktop allows you to switch between Stable and Edge releases. However, you can only have one version of Docker Desktop installed at a time. Switching between Stable and Edge versions can destabilize your development environment, particularly in cases where you switch from a newer (Edge) channel to an older (Stable) channel.
For example, containers created with a newer Edge version of Docker Desktop maynot work after you switch back to Stable because they may have been createdusing Edge features that aren’t in Stable yet. Keep this in mind asyou create and work with Edge containers, perhaps in the spirit of a playgroundspace where you are prepared to troubleshoot or start over.
Experimental features are turned on by default on Edge releases. However, when you switch from a Stable to an Edge release, you must turn on the experimental features flag to access experimental features. From the Docker Desktop menu, click Preferences > Command Line and then turn on the Enable experimental features toggle. Click Apply & Restart for the changes to take effect.
To safely switch between Edge and Stable versions, ensure you save images and export the containers you need, then uninstall the current version before installing another. For more information, see the section Save and Restore data below.
Save and restore data
You can use the following procedure to save and restore images and container data. For example, if you want to switch between Edge and Stable, or to reset your VM disk:
docker save -o images.tar image1 [image2 ...]to save any images you want to keep. See save in the Docker Engine command line reference.
docker export -o myContainner1.tar container1to export containers you want to keep. See export in the Docker Engine command line reference.
Uninstall the current version of Docker Desktop and install a different version (Stable or Edge), or reset your VM disk.
docker load -i images.tarto reload previously saved images. See load in the Docker Engine.
docker import -i myContainer1.tarto create a filesystem image corresponding to the previously exported containers. See import in the Docker Engine.
For information on how to back up and restore data volumes, see Backup, restore, or migrate data volumes.
Where to go next
- Getting started provides an overview of Docker Desktop on Mac, basic Docker command examples, how to get help or give feedback, and links to other topics about Docker Desktop on Mac.
- Troubleshooting describes common problems, workarounds, howto run and submit diagnostics, and submit issues.
- FAQs provide answers to frequently asked questions.
- Release notes lists component updates, new features, andimprovements associated with Stable releases. For information about Edge releases, seeEdge release notes.
- Get started with Docker provides a general Docker tutorial.