New DDEV Docker Providers for macOS

November 29, 2023 5 min read

Edit this page
Cartoon whale in a shipping container labeled ‘Docker’
Image generated by OpenAI's DALL-E: Create an image of the Docker whale inside a ship container, depicted in a whimsical and colorful style.

Exciting news! DDEV now has official support for two new Docker providers on macOS: OrbStack and Rancher Desktop.

OrbStack is the new kid on the block, getting rave reviews for its performance and ease of use. Rancher Desktop has been around for a long time and wraps Lima, as Colima does.

Each of DDEV’s officially supported Docker providers has full automated testing, which means that every push to the default branch results in a 1–3 hour full run through DDEV’s test suite. New problems with the provider or DDEV are discovered rapidly.

A credit before we get down to the differences: We want to thank Docker, Inc. for their amazing maintenance of a groundbreaking open-source product, as well as all their commercial products. Each of the Docker providers below incorporates the open-source Docker/Moby project, presenting it in different ways. And Docker provides the hub.docker.com registry, where all of DDEV’s Docker images are served from. And they grant DDEV membership in their Docker Sponsored Open Source Program, which saves the DDEV Foundation money and also means that there are no rate limits on your usage of DDEV Docker images. Thank you, Docker!

Want to know more about how Docker works and what Docker images and containers are? It’s a deep rabbit-hole, but it’s fun! DDEV’s usage is explained in the docs and Docker’s introduction is another entrypoint for you.

macOS Docker installation for each of these is in the docs; the Docker providers and their differences are shown here:

ProviderAdvantagesDisadvantagesOpen Source?Free?
OrbStackLightweight, great performance, well maintainedNoNo
ColimaMany, many permutations of configurationThere have been a variety of problems with upgradesYesYes
Docker DesktopWell-knownOften buggyNoNo
Rancher DesktopNew to DDEVYesYes

What is a Docker Provider?

DDEV depends on a Docker Provider, but what is it?

Docker is the reason that DDEV can behave the same on every operating system, including Linux, WSL2, traditional Windows, and macOS (both Apple Silicon and Intel).

All of the Docker Providers on every platform (except Linux) are actually wrappers on the open-source Docker/Moby project, which is supported by Docker, Inc. Thank you! On Linux, the Docker setup runs natively, without any wrapper, which is why DDEV is so performant on Linux.

How can DDEV support all these providers?

The idea of Docker is that everything happens inside a container, which you can think of as a little, separate computer. You can have as many of them as you want, and they can be created and destroyed easily.

DDEV’s Docker images and containers are the same on every operating system, except that we build separate images for each processor architecture (ARM64 is mostly Apple Silicon, but other computers like Rasberry Pi as well, and AMD64 is Intel). So mostly all the work is done inside the container, and the containers/images behave the same. And DDEV’s main code is written in Golang, which is compiled natively into a single binary on every platform. Of course that sounds simple, but it’s not all that simple. Building all those images has quite a history, and of course Docker providers that ought to behave the same everywhere don’t actually, so there are workarounds in many places. (But you don’t have to worry about them using DDEV!)

What are the Docker Providers on other Operating Systems?

OSProviderOpen Source?Free?Comments
Traditional WindowsDocker DesktopnonoCan be buggy, can be slow, but pretty usable with Mutagen
Windows WSL2docker-ceyesyesStandard Linux Docker, performant, free, open source, well-maintained
Windows WSL2Docker DesktopnonoCan be buggy
Linuxdocker-ceyesyesStandard open-source Docker, well-maintained
LinuxDocker Desktop for Linux (DO NOT USE)nonoNon-functional for containers like DDEV that don’t use root user, poor performance

What are DDEV Users Choosing Right Now?

Traditional Windows users have only the Docker Desktop option, and nearly everyone on Linux uses docker-ce, but here are the macOS and WSL2 breakdowns:

Donut chart depicting the last 7 days of macOS Docker Platform usage, led by almost three quarters Docker Desktop, then Colima, and a sliver of OrbStack

Donut chart depicting the last day of WSL2 Docker Platform usage, with slightly more than half using WSL2 and slightly less than half using Docker Desktop

Ready to Try These Out?

You can easily try out any of these Docker providers without breaking anything. The environments are completely separate. In general, follow these steps:

  1. Run ddev poweroff
  2. Stop your current Docker provider.
  3. Start the one you’re testing.
  4. Optionally change the Docker context to the one you want to use. For example, docker context use rancher-desktop or docker context use orbstack.
  5. If docker ps doesn’t have an error you’re ready to go. Start a DDEV project and explore.

This technique won’t break anything on your system, assuming you have a little disk space available and follow that path.

Switching to a New Docker Provider with DDEV

If you’ve tried out a new Docker provider and have decided to switch, use this tip from the FAQ.

The bottom line is:

  • On the old Docker Provider, ddev snapshot --all will create database snapshots of all your registered projects (the ones that show up in ddev list).
  • Then stop the old Docker Provider and start the new one.
  • ddev snapshot restore --latest in each of your projects will restore the database snapshots.

Note that OrbStack has built-in migration from Docker Desktop; it prompts you at install time. I haven’t tried that out.

Posted In