New DDEV Docker Providers for macOS
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:
Provider | Advantages | Disadvantages | Open Source? | Free? |
---|---|---|---|---|
OrbStack | Lightweight, great performance, well maintained | No | No | |
Colima | Many, many permutations of configuration | There have been a variety of problems with upgrades | Yes | Yes |
Docker Desktop | Well-known | Often buggy | No | No |
Rancher Desktop | New to DDEV | Yes | Yes |
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?
OS | Provider | Open Source? | Free? | Comments |
---|---|---|---|---|
Traditional Windows | Docker Desktop | no | no | Can be buggy, can be slow, but pretty usable with Mutagen |
Windows WSL2 | docker-ce | yes | yes | Standard Linux Docker, performant, free, open source, well-maintained |
Windows WSL2 | Docker Desktop | no | no | Can be buggy |
Linux | docker-ce | yes | yes | Standard open-source Docker, well-maintained |
Linux | Docker Desktop for Linux (DO NOT USE) | no | no | Non-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:
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:
- Run
ddev poweroff
- Stop your current Docker provider.
- Start the one you’re testing.
- Optionally change the Docker context to the one you want to use. For example,
docker context use rancher-desktop
ordocker context use orbstack
. - 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 inddev 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.