Docker Desktop for Apple silicon
Estimated reading time: 4 minutes
Docker Desktop for Mac on Apple silicon is now available as a GA release. This enables you to develop applications with your choice of local development environments, and extends development pipelines for ARM-based applications.
Docker Desktop for Apple silicon also supports multi-platform images, which allows you to build and run images for both x86 and ARM architectures without having to set up a complex cross-compilation development environment. Additionally, you can use docker buildx to seamlessly integrate multi-platform builds into your build pipeline, and use Docker Hub to identify and share repositories that provide multi-platform images.
Download Docker Desktop for Mac on Apple silicon:
Download Docker Desktop
You must install Rosetta 2 as some binaries are still Darwin/AMD64. To install Rosetta 2 manually from the command line, run the following command:
$ softwareupdate --install-rosetta
We expect to fix this in a future release.
Not all images are available for ARM64 architecture. You can add
--platform linux/amd64to run an Intel image under emulation. In particular, the mysql image is not available for ARM64. You can work around this issue by using a mariadb image.
However, attempts to run Intel-based containers on Apple Silicon machines under emulation can crash as qemu sometimes fails to run the container. In addition, filesystem change notification APIs (
inotify) do not work under qemu emulation. Even when the containers do run correctly under emulation, they will be slower and use more memory than the native equivalent.
In summary, running Intel-based containers on Arm-based machines should be regarded as “best effort” only. We recommend running arm64 containers on Apple Silicon machines whenever possible, and encouraging container authors to produce arm64, or multi-arch, versions of their containers. We expect this issue to become less common over time, as more and more images are rebuilt supporting multiple architectures.
pingfrom inside a container to the Internet does not work as expected. To test the network, we recommend using
wget. See docker/for-mac#5322.
- Users may occasionally experience data drop when a TCP stream is half-closed.
Fixes since Docker Desktop RC 3
- Docker Desktop now ensures the permissions of
/dev/nulland other devices are correctly set to
--privilegedcontainers. Fixes docker/for-mac#5527.
- Docker Desktop now reduces the idle CPU consumption.
Fixes since Docker Desktop RC 2
- Update to Linux kernel 5.10.25 to improve reliability.
Fixes since Docker Desktop RC 1
- Inter-container HTTP and HTTPS traffic is now routed correctly. Fixes docker/for-mac#5476.
Fixes since Docker Desktop preview 3.1.0
- The build should update automatically to future versions.
- HTTP proxy support is working, including support for domain name based
no_proxyrules via TLS SNI. Fixes docker/for-mac#2732.
Fixes since the Apple Silicon preview 7
- Kubernetes now works (although you might need to reset the cluster in our Troubleshoot menu one time to regenerate the certificates).
- osxfs file sharing works.
vm.docker.internalDNS entries now resolve.
- Removed hard-coded IP addresses: Docker Desktop now dynamically discovers the IP allocated by macOS.
- The updated version includes a change that should improve disk performance.
- The Restart option in the Docker menu works.
Your feedback is important to us. Let us know your feedback by creating an issue in the Docker Desktop for Mac GitHub repository.
We also recommend that you join the Docker Community Slack and ask questions in #docker-desktop-mac channel.