Docker Desktop and virtual machines on a Mac dedicated server
Install Docker Desktop on a Mac dedicated server or macOS VDS, set its CPU, memory and disk limits, run amd64 images with Rosetta and keep containers running.
- Beginner
- 20 min read
- Updated
On this page
On a Mac dedicated server, the Mac is yours down to the hardware, so tools that start their own virtual machines work: Docker Desktop, the Android emulator and apps that run macOS or Linux virtual machines through Apple's Virtualization framework. This guide sets up Docker Desktop and covers the points that matter on a Mac in a data center.
Before you start
- A Mac dedicated server (Apple silicon), or a macOS VDS (Intel-based, with nested virtualization). macOS VPS plans, including Apple Silicon macOS VPS, cannot run Docker Desktop.
- A supported macOS: Docker Desktop supports the current and the two previous major macOS releases, and needs at least 4 GB of memory.
- A signed-in desktop session through the HyperDC Web Console or Apple Remote Desktop; see set up a Mac dedicated server.
Step 1: Install Docker Desktop
- In the Mac's browser, download Docker Desktop for Mac from Docker's documentation: the Apple silicon build on a Mac dedicated server, the Intel chip build on a macOS VDS.
- Open
Docker.dmgand drag the Docker icon to the Applications folder. - Start Docker from Applications and complete the first-start steps.
Docker recommends installing Rosetta 2 on Apple silicon for the best results. If it is not installed yet:
softwareupdate --install-rosettaVerify:
docker version
docker run --rm hello-worldThe second command prints "Hello from Docker!".
Step 2: Set resources and start-up behaviour
Open Docker Desktop's Settings:
| Where | Setting | Recommendation |
|---|---|---|
| General | Start Docker Desktop when you sign in to your computer | On, so containers come back after a restart and sign-in |
| General | Use Rosetta for x86_64/amd64 emulation on Apple Silicon | On, if you run amd64 images (needs the Apple Virtualization framework as virtual machine manager) |
| Resources › Advanced | CPU limit, Memory limit | Leave enough for macOS, Xcode and other work on the Mac |
| Resources › Advanced | Disk usage limit | Large enough for your images and volumes |
Select Apply & restart after changes.
Step 3: Run arm64 and amd64 images
Images built for arm64 run natively and fastest. For an image that exists only for amd64, ask for that platform explicitly:
docker image inspect --format '{{.Architecture}}' hello-world
docker run --rm --platform linux/amd64 alpine uname -mThe first command shows arm64 for the native image; the second prints x86_64 from inside an emulated container. Use Docker Compose as on any other system; see Docker Compose basics. To build images for both architectures, see multi-architecture Docker images.
Step 4: Keep containers running
- Start containers with a restart policy, for example
docker run -d --restart unless-stopped …orrestart: unless-stoppedin Compose, so they come back when Docker Desktop starts. - Docker Desktop runs inside a signed-in user session. Disconnect from the Web Console or Apple Remote Desktop instead of signing out. For unattended restarts, use automatic login for a standard user as described in set up a Mac dedicated server.
Other virtual machines and emulators
- Android Emulator: install Android Studio and create a virtual device with an arm64-v8a system image.
- macOS and Linux virtual machines: apps built on Apple's Virtualization framework run them on Apple silicon. Every running VM takes its share of the Mac's memory and storage, together with Docker Desktop's own VM.
Troubleshooting
Cannot connect to the Docker daemon … Is the docker daemon running? Docker Desktop is not running in your session. Start it from Applications and wait until it reports that the engine is running.
no matching manifest for linux/arm64 or exec format error. The image has no arm64 variant. Run it with --platform linux/amd64 (and Rosetta enabled), or use an image that supports arm64.
Docker Desktop does not start after a restart. Nobody is signed in, or Start Docker Desktop when you sign in is off. See Step 4.
The disk fills up. Remove unused images and build cache with docker system prune (it asks before deleting), and check Disk usage limit.
Docker Desktop reports that the macOS version is not supported. Update macOS within the range Docker supports, keeping your Xcode needs in mind.
Next steps
- Prepare the Mac for unattended work: set up a Mac dedicated server.
- Build for arm64 and amd64: multi-architecture Docker images.
Frequently asked questions
Can I run Docker Desktop on a macOS VPS?
No. Docker Desktop starts its own Linux virtual machine, which needs nested virtualization or a physical Mac. Use a Mac dedicated server or a macOS VDS, or run containers on a Linux server next to your Mac.
Do amd64 (x86) images work on Apple silicon?
Yes, with emulation. Docker Desktop can use Rosetta for x86_64/amd64 images; they run slower than native arm64 images, so prefer images that are published for arm64.
Do containers keep running when I disconnect?
Yes, as long as the user who started Docker Desktop stays signed in. Disconnecting from the Web Console or Apple Remote Desktop does not sign you out; signing out or restarting stops Docker Desktop.
Can I run the Android emulator?
Yes. On a Mac dedicated server the Android Studio emulator runs Android system images built for Apple silicon (arm64-v8a).