Apple supports only the last two preceding major operating system versions. Which leads to the fact that Docker as well as Homebrew dropped the support for those. At the time of the writing this post macOS Monterey is the current version, while the last supported version is macOS Catalina. For macOS Catalina the minimum hardware requirement is a MacBook Pro/Air Mid 2012. Many still good computers fall through the raster. But how to setup Docker and DDEV on an older Mac which is only able to run for example macOS High Sierra tops.
-
What have you tried to resolve the problem? As far as I read the documentation, Homebrew still supports versions till 10.10, which is seven years old – Nico Haase Nov 15 '21 at 08:02
-
3No, Homebrew isn't providing any precompiled formulas anymore nor do they offer any support. I am using High Sierra and `brew doctor` states: "Warning: You are using macOS 10.13. We (and Apple) do not provide support for this old version. You will encounter build failures with some formulae. Please create pull requests instead of asking for help on Homebrew's GitHub, Twitter or any other official channels. You are responsible for resolving any issues you experience while you are running this old version.". – rkoller Nov 16 '21 at 14:04
-
1...and @rfay the maintainer of DDEV asked me to write up my experience how to run DDEV on an old Mac since he encounters questions and sees the need in that regard still – rkoller Nov 16 '21 at 14:06
1 Answers
1. Install Docker
To find a previous version not supported anymore you have to go to https://docs.docker.com/desktop/mac/release-notes/2.x/. For High Sierra the last supported version is Docker Desktop Community 2.4.0.0
. There are versions for even older revision of MacOS at https://docs.docker.com/desktop/mac/release-notes/archive/.
2. Setup Docker
After the install go to the Docker preference and into the resources tab. The defaults are usually fine for smaller projects. In case you have the available hardware resources quite a simple performance tweak would be increasing the RAM limit for Docker to half of the available amount on board tops. In case you have more than 2 CPU cores available for your computer it makes also sense to tweak the limit of available cores to alleviating high I/O load.
In general you should play a bit with those settings and see what brings the best user experience. docker stats aside the perceived experience provides further clues what ressources are consumed by the running ddev setup. There you are able to see how much CPU is utilized, the amount of memory is consumed, as well as the network i/o and block i/o and PIDS. Over all you adjust and play around with the assigned resources until you reach the sweet spot for your daily usage.
Finally you should also make sure that the "Disk image location" path ends with the file type Docker.raw
to ensure you are using the latest image format for performance. In case the suffix is something else go to ~/Library/Group Containers/group.com.docker/settings.json
and alter the filePath
property from .qcow2
to .raw
.
3. Install DDEV and MKCERT without Homebrew
Since the Homebrew support is dropped for older versions of MacOS the most convenient option to install or update to latest version of DDEV and MKCERT is downloading and running the following line in the terminal:
curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh
4. Activate Mutagen globally for DDEV
With the release of DDEV 1.8.0 the option of using Mutagen instead of the NFS filesystem got introduced. That significantl elevates the performance for older Macs making them usable again with Docker. Just enter the following line into the terminal.
ddev config global --mutagen-enabled`
That line is creating the global settings file in ~/.ddev/global_config.yaml
and enables Mutagen for every future project per default. So you don't have to worry to remember activating Mutagen for each and every newly created project. An additional cosmetic janitor task might be manually set nfs_mount_enabled
to false
in the global_config.yaml
file.
5. Setup a DDEV project
Now create an empty folder and run the following command:
ddev config
and configure the project to your needs to use that folder with DDEV and start it with
ddev start
One last performance related comment in case you intend to use Composer. It is highly recommended to use Composer 2. DDEV provides the ability to use either version 1 or 2 - per default version 2 is set. To review that version 2 is active simply check the Composer version in the running web container with:
ddev . composer --version

- 1,424
- 3
- 26
- 39
-
2Thanks for this! Seems like the big deal is finding the old Docker Desktop version. Note that composer v2 is default, so it's unlikely people will end up with composer v1 by accident these days. – rfay Nov 14 '21 at 23:16
-
2yep finding the old Docker Desktop versions is the most tricky part. btw the paths changed again to the ones you dug up a few weeks ago. ;) And yep I know that Composer defaults to version 2 with DDEV now. But I consider it a reasonable step to perform a quick check. That way people understand the inner workings a bit better. That there are two different version of Composer, to understand how to check which is the active version and the awareness to be able to change versions. Better than just taking for granted to have Composer 2. Be more aware and in control in case :) – rkoller Nov 15 '21 at 03:23
-
2Looks like the latest working version for High Sierra is 2.3.5.0. It is being said that they started to remove macOS 10.13 support beginning with version 2.3.6.0. See here: https://github.com/docker/for-mac/issues/4996#issuecomment-709841890 – Yury K. Sep 07 '22 at 22:41