# 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.

Difficulty: Beginner

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](/guides/mac-dedicated-server-setup).

## Step 1: Install Docker Desktop

1. 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.
2. Open `Docker.dmg` and drag the Docker icon to the **Applications** folder.
3. 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:

```bash
softwareupdate --install-rosetta
```

**Verify:**

```bash
docker version
docker run --rm hello-world
```

The 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:

```bash
docker image inspect --format '{{.Architecture}}' hello-world
docker run --rm --platform linux/amd64 alpine uname -m
```

The 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](/guides/docker-compose-basics). To build images for both architectures, see [multi-architecture Docker images](/guides/multi-arch-docker-images).

## Step 4: Keep containers running

- Start containers with a **restart policy**, for example `docker run -d --restart unless-stopped …` or `restart: unless-stopped` in 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](/guides/mac-dedicated-server-setup).

## 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](/guides/mac-dedicated-server-setup).
- Build for arm64 and amd64: [multi-architecture Docker images](/guides/multi-arch-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).

---

Source: <https://hyperdc.com/guides/products/docker-desktop-on-mac>\
Updated: 2026-10-15
