← Back to DevBytes

macOS Docker Desktop Alternatives: Colima, Podman, Rancher

macOS Docker Desktop Alternatives: Colima, Podman, and Rancher

Docker Desktop has long been the default way to run containers on macOS, but it is not the only option. With changes to Docker's licensing model for larger organizations, increased resource consumption, and a desire for more lightweight tooling, many developers are exploring alternatives. This tutorial covers three popular Docker Desktop alternatives on macOS: Colima, Podman, and Rancher Desktop. We will explore what each tool is, why it matters, how to install and use it, and best practices for getting the most out of your container workflow.

Why Look Beyond Docker Desktop?

Docker Desktop bundles the Docker Engine, Docker CLI, Compose, Kubernetes support, and a GUI into a single macOS application. It is convenient, but it comes with trade-offs:

The alternatives below address these concerns while still providing a familiar container development experience on macOS.

Colima: Lightweight Docker Runtime on macOS

What Is Colima?

Colima is an open-source, lightweight container runtime for macOS and Linux. It provides a minimal Linux VM (based on Lima) that runs Docker or containerd, exposing the same Docker API you already use. Because Colima is CLI-driven and has no GUI, it consumes far fewer resources than Docker Desktop while remaining fully compatible with the docker command-line tool and Docker Compose.

Why Colima Matters

Colima matters because it offers a near drop-in replacement for Docker Desktop's core functionality without the licensing cost or GUI overhead. It supports Docker Compose, Kubernetes (single-node), and even rootless mode. If your workflow is CLI-centric and you want a fast, minimal runtime, Colima is an excellent choice.

Installing Colima

The easiest way to install Colima on macOS is via Homebrew. You will also need the Docker CLI client and Docker Compose plugin.

# Install Colima, Docker CLI, and Compose plugin
brew install colima docker docker-compose

# Start Colima with default settings (2 CPU, 2GB RAM)
colima start

# Verify the Docker CLI works
docker info
docker run --rm hello-world

Configuring Colima

Colima supports several profiles and runtime options. You can customize CPU, memory, disk size, and even enable Kubernetes.

# Start Colima with 4 CPUs, 8GB RAM, and 60GB disk
colima start --cpu 4 --memory 8 --disk 60

# Enable Kubernetes support
colima start --kubernetes

# Use containerd runtime instead of Docker
colima start --runtime containerd

# Stop and delete the VM
colima stop
colima delete

Using Docker Compose with Colima

Because Colima exposes the standard Docker API, Docker Compose works without modification.

# Create a simple docker-compose.yml
cat <<'EOF' > docker-compose.yml
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
  redis:
    image: redis:alpine
EOF

# Launch the stack
docker compose up -d

# Check running containers
docker compose ps

# Tear down
docker compose down

Colima Best Practices

Podman: Daemonless, Rootless Containers

What Is Podman?

Podman is an open-source container engine developed by Red Hat. Unlike Docker, Podman is daemonless and rootless by default. Each container is a child process of the user who started it, which improves security and reduces the attack surface. Podman also introduces the concept of "pods," groups of containers that share networking and resources, mirroring Kubernetes primitives.

Why Podman Matters

Podman matters for developers who care about security, want a closer alignment with Kubernetes, or prefer a fully open-source tool. Podman can alias the docker command, making migration straightforward. It also supports rootless containers out of the box, which is a significant security improvement over Docker's traditional daemon model.

Installing Podman on macOS

On macOS, Podman runs containers inside a Linux VM managed by Podman Machine. Install it via Homebrew:

# Install Podman
brew install podman

# Initialize the default machine
podman machine init

# Start the machine
podman machine start

# Verify
podman info
podman run --rm hello-world

Using Podman as a Docker Replacement

Podman's CLI is designed to be compatible with Docker. You can create an alias so existing scripts continue to work.

# Add alias to your shell profile (~/.zshrc or ~/.bash_profile)
echo 'alias docker="podman"' >> ~/.zshrc
source ~/.zshrc

# Now docker commands route to Podman
docker ps
docker images
docker run --rm alpine echo "Hello from Podman"

Working with Pods

Pods are a powerful feature that groups containers together, similar to Kubernetes pods. This is useful when you want to test multi-container applications locally before deploying to Kubernetes.

# Create a new pod with a published port
podman pod create --name mypod -p 8080:80

# Add a web server container to the pod
podman run -d --pod mypod --name web nginx:alpine

# Add a sidecar container to the same pod
podman run -d --pod mypod --name sidecar alpine sleep 3600

# List pods and their containers
podman pod ps
podman ps --pod

# Clean up
podman pod rm -f mypod

Generating Kubernetes YAML from Podman

One of Podman's standout features is the ability to export running containers as Kubernetes manifests.

# Run a container
podman run -d --name myapp -p 8080:80 nginx:alpine

# Generate Kubernetes YAML
podman generate kube myapp > myapp.yaml

# Later, deploy using Kubernetes
kubectl apply -f myapp.yaml

# Clean up the local container
podman rm -f myapp

Podman Best Practices

Rancher Desktop: Kubernetes-First Container Environment

What Is Rancher Desktop?

Rancher Desktop is an open-source application that provides container management and Kubernetes on macOS, Windows, and Linux. It is built by SUSE and the Rancher team. Unlike Colima and Podman, Rancher Desktop ships with a GUI and focuses on providing a local Kubernetes cluster (via k3s) alongside a container runtime. You can choose between the moby runtime (Docker-compatible) or containerd.

Why Rancher Desktop Matters

Rancher Desktop matters for developers who need Kubernetes as part of their local workflow. It combines the convenience of a GUI with the power of k3s, a lightweight Kubernetes distribution. It is fully open-source, free for all use cases, and integrates well with the broader Rancher ecosystem. If you regularly test Helm charts, operators, or multi-service Kubernetes apps locally, Rancher Desktop is a compelling option.

Installing Rancher Desktop

You can install Rancher Desktop via Homebrew Cask or by downloading the installer directly from the project's GitHub releases.

# Install via Homebrew Cask
brew install --cask rancher

# Launch the application
open -a Rancher\ Desktop

On first launch, you will choose a container runtime (moby for Docker compatibility or containerd for nerdctl). You can also select a Kubernetes version or disable Kubernetes entirely if you only need containers.

Using Rancher Desktop with Docker CLI

If you select the moby runtime, the standard Docker CLI works out of the box.

# Verify Docker compatibility
docker info
docker run --rm hello-world

# Run a multi-container app
docker compose up -d
docker compose ps
docker compose down

Using Kubernetes with Rancher Desktop

Rancher Desktop includes k3s, so you can immediately interact with Kubernetes using kubectl.

# Check cluster nodes
kubectl get nodes

# Deploy a sample application
kubectl create deployment nginx --image=nginx:alpine
kubectl expose deployment nginx --port=80 --type=LoadBalancer

# Check resources
kubectl get pods
kubectl get svc

# Forward the service port locally
kubectl port-forward svc/nginx 8080:80

# Clean up
kubectl delete svc nginx
kubectl delete deployment nginx

Working with Helm

Rancher Desktop pairs naturally with Helm for package management on Kubernetes.

# Install Helm if not present
brew install helm

# Add a popular chart repository
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

# Install Redis
helm install my-redis bitnami/redis

# Verify
kubectl get pods

# Uninstall
helm uninstall my-redis

Rancher Desktop Best Practices

Comparing the Three Alternatives

Each tool has distinct strengths. The right choice depends on your priorities:

All three are open-source and free for commercial use, making them attractive for organizations looking to move away from Docker Desktop's licensing requirements.

General Best Practices for macOS Container Development

Conclusion

Docker Desktop is no longer the only viable option for running containers on macOS. Colima offers a lightweight, CLI-first experience that feels almost identical to Docker. Podman brings a daemonless, rootless, Kubernetes-aligned approach with strong security defaults. Rancher Desktop combines a friendly GUI with a built-in Kubernetes cluster for developers who need to test cloud-native applications locally. By understanding the strengths of each tool and applying the best practices outlined above, you can choose the right alternative for your team, reduce licensing risk, and often improve performance and developer experience along the way.

— Ad —

Google AdSense will appear here after approval

← Back to all articles