Three ways to run Docker on macOS in 2026. All work on Apple Silicon (M1/M2/M3/M4) and Intel Macs.
Option 1: Docker Desktop
The official Docker experience. Best UI, best integration, most polished.
Install
Via Homebrew:
brew install --cask dockerOr download from docker.com/products/docker-desktop β choose Apple Silicon or Intel chip.
Verify
docker --version
# Docker version 27.x.x
docker compose version
# Docker Compose version v2.x.x
docker run hello-world
# Hello from Docker!Configure resources
Docker Desktop runs a Linux VM under the hood. Default resources are conservative:
Settings β Resources:
| Setting | Default | Recommended for development |
|---|---|---|
| CPUs | 2 | 4-6 |
| Memory | 4 GB | 8-12 GB |
| Disk | 64 GB | 100 GB |
| Swap | 1 GB | 2 GB |
For AI/ML workloads or large multi-container stacks, allocate more memory.
Licensing
Docker Desktop requires a paid subscription ($5-24/user/month) for:
- Companies with 250+ employees
- Companies with over $10M annual revenue
Free for personal use, open-source projects, small businesses, and education.
If your company needs a free alternative, use Colima or Podman below.
Option 2: Colima (free, lightweight)
Colima is a free, open-source Docker runtime for macOS. It creates a minimal Linux VM using Lima and exposes the Docker socket. No UI, no licensing restrictions.
Install
# Install Colima and Docker CLI
brew install colima docker docker-composeStart
# Start with default resources (2 CPU, 2 GB RAM)
colima start
# Or customize resources
colima start --cpu 4 --memory 8 --disk 100
# For Apple Silicon β use native ARM64 VM
colima start --arch aarch64 --cpu 4 --memory 8Verify
docker context use colima
docker run hello-worldWhy Colima
- Free β no licensing restrictions, Apache 2.0
- Lightweight β minimal VM, fast startup (~10 seconds)
- Docker-compatible β uses the official Docker CLI
- Kubernetes built-in β
colima start --kubernetesgives you a local k3s cluster
# Start Colima with Kubernetes
colima start --kubernetes --cpu 4 --memory 8
# kubectl is ready
kubectl get nodesManage Colima
# Check status
colima status
# Stop VM
colima stop
# Delete and recreate
colima delete
colima start --cpu 6 --memory 12
# SSH into the VM
colima sshOption 3: Podman Desktop (Docker-free)
Podman is a daemonless, rootless container runtime. Podman Desktop provides a GUI similar to Docker Desktop but fully free.
Install
# CLI only
brew install podman
podman machine init
podman machine start
# Or install Podman Desktop (GUI)
brew install --cask podman-desktopDocker compatibility
# Drop-in replacement
alias docker=podman
# Everything works
podman run hello-world
podman compose up -dPodman vs Docker on macOS
| Feature | Docker Desktop | Colima | Podman |
|---|---|---|---|
| License | Commercial (large companies) | Free (Apache 2.0) | Free (Apache 2.0) |
| GUI | Yes (polished) | No (CLI only) | Yes (Podman Desktop) |
| Docker CLI compatible | Native | Yes | Yes (alias docker=podman) |
| Compose | docker compose | docker compose | podman compose |
| Kubernetes | Built-in (single node) | k3s (--kubernetes) | Kind/Minikube |
| Startup time | ~15 seconds | ~10 seconds | ~15 seconds |
| Resource overhead | Moderate | Low | Low |
| Rootless | Opt-in | N/A (VM) | Default |
| Extensions | Yes (marketplace) | No | Yes (limited) |
| Volume mounts | Fast (VirtioFS) | Fast (9p/virtiofs) | Moderate |
Troubleshooting
Docker daemon not running
# Docker Desktop
# Open the app β it must be running for the daemon
# Colima
colima start # restart the VM
# Podman
podman machine startSlow volume mounts
macOS file sharing between host and container VM can be slow for large projects:
# Docker Desktop: enable VirtioFS
# Settings β General β "Use VirtioFS" β
# Colima: use virtiofs mount type
colima start --mount-type virtiofs
# For node_modules or build artifacts, use named volumes instead of bind mounts
docker volume create myapp-node-modules
docker run -v myapp-node-modules:/app/node_modules myappApple Silicon ARM64 vs x86 images
Some images are not available for ARM64. Docker and Podman can emulate x86:
# Run x86 image on Apple Silicon
docker run --platform linux/amd64 some-x86-only-image
# Build multi-arch images
docker buildx build --platform linux/amd64,linux/arm64 -t myapp .Port conflicts
# Check what is using a port
lsof -i :8080
# Kill the process
kill -9 $(lsof -ti :8080)My recommendation
- Docker Desktop if your company is licensed and you want the best experience
- Colima if you want free, lightweight, Docker-compatible β my default choice on macOS
- Podman if you want rootless containers and Docker-free architecture
All three run the same OCI containers. Your images and Compose files work across all of them.