-
-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
58 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
--- | ||
title: "New DDEV Docker Providers for macOS" | ||
pubDate: 2023-11-29 | ||
modifiedDate: 2023-11-29 | ||
summary: "DDEV now supports OrbStack and Rancher Desktop as Docker Providers. And what is a Docker Provider anyway?" | ||
author: "Randy Fay" | ||
featureImage: | ||
src: /img/blog/2023/11/docker-in-a-box.png | ||
alt: Docker in a box | ||
credit: "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." | ||
categories: | ||
- DevOps | ||
--- | ||
|
||
Exciting news! DDEV now has official support for two new Docker providers on macOS, [OrbStack](https://orbstack.dev) and [Rancher Desktop](https://rancherdesktop.io/). 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](https://github.com/lima-vm/lima), as Colima does. | ||
|
||
Each of DDEV’s officially supported Docker providers has support in automated testing, which means that every push to the default branch results in a 1-3 hour full test of 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 an amazing 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](https://hub.docker.com) registry, where all of DDEV's Docker images are served from. And they provide DDEV membership in their [Docker Sponsored Open Source Program](https://www.docker.com/community/open-source/application/), 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! | ||
|
||
macOS Docker installation for each of these is [in the docs](https://ddev.readthedocs.io/en/latest/users/install/docker-installation/#macos); 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](https://github.com/moby/moby), which is supported by [Docker, Inc](https://docker.com). 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. So the Docker images and containers used by DDEV are the same on every operating system, except that we build separate images for each processor architecture (arm64 - Apple Silicon, and amd64 - 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. | ||
|
||
## 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: | ||
|
||
![Macos Docker Platform Usage](/img/blog/2023/11/macOS_Docker_Platform.png) | ||
|
||
![WSL2_Docker_Platform Usage](/img/blog/2023/11/WSL2_Docker_Platform.png) |