devAlice
← Mac

Docker en Mac: Docker Desktop vs OrbStack vs colima + configuración Apple Silicon

Comparación de tres runtimes de contenedores en Mac con Apple Silicon. Licencia, rendimiento, uso de RAM y compatibilidad: elige el adecuado para tu situación.

Cuando dices «Docker en Mac», la mayoría de la gente recurre a Docker Desktop. Pero tras el cambio de licencia de 2021 (de pago para empresas con más de 250 empleados o más de $10M de ingresos), las alternativas han avanzado rápido. OrbStack y colima son las dos principales alternativas, y ambas son más ligeras en Apple Silicon.

Esta guía compara los tres runtimes en Apple Silicon (M1–M4) + macOS 14+ y te da una tabla de decisión para elegir en cada caso. Una vez que elijas, sigue la sección de ese runtime para los pasos reales de instalación.

TL;DR

RuntimeLicenciaRAM (inactivo)InicioUIdocker composek8sApple Silicon ARM
Docker DesktopDe pago para grandes orgs~2GB~10s
OrbStackGratis personal, de pago empresarial~500MB~2s✅ (nativo)
colimaCódigo abierto (MIT)~600MB~5s❌ Solo CLI✅ (opcional)
  • La política corporativa lo permite y quieres interfaz gráfica: Docker Desktop
  • Máquina personal y priorizas velocidad/ligereza: OrbStack (recomendado)
  • Opción completamente gratuita y solo necesitas CLI: colima

Requisitos previos

  • macOS 14+ + Apple Silicon (M1–M4) recomendado
  • Homebrew (configuración inicial de Mac)
  • 16GB de RAM o más (8GB se atasca durante las compilaciones)

1. Tabla de decisión: cuál elegir

Elige Docker Desktop si

  • Necesitas la interfaz de Kubernetes: la pestaña k8s de Docker Desktop es la más sencilla de usar.
  • Es el estándar de la empresa: ir en contra de la elección del equipo cuesta tiempo de depuración.
  • Combinas Mac y Windows en el mismo equipo: Docker Desktop ofrece la experiencia más consistente.

Elige OrbStack si

  • Es una máquina personal y valoras la relación calidad-precio: gratuito para uso personal, ~4× más rápido que Docker Desktop.
  • También quieres VMs Linux ligeras: OrbStack incluye Docker y un gestor de máquinas virtuales Linux.
  • Tienes RAM limitada: consume ~500 MB en reposo.

Elige colima si

  • Necesitas evitar licencias comerciales: es código abierto MIT, seguro para uso corporativo.
  • Prefieres la automatización: solo CLI, gestionado completamente por archivos de configuración.
  • Requieres compatibilidad con CI o contenedores de desarrollo: está basado en Lima y se integra bien con macOS.

Si no puedes decidir, empieza con la prueba gratuita de 30 días de OrbStack: es la experiencia más fluida.


2. Configuración de Docker Desktop — 10 min

2.1 Instalar

brew install --cask docker

O descarga desde docker.com. La compilación para Apple Silicon se selecciona automáticamente.

2.2 Primer inicio

Cmd + Space → Docker o Spotlight. Cuando aparece el ícono 🐳 en la barra de menús, estás listo.

docker --version       # Docker version 27.x.x
docker run hello-world # contenedor hello-world estándar

2.3 Ajuste de recursos (necesario)

Docker Desktop → Configuración → Recursos:

  • CPUs: la mitad de las CPUs del host (4 en una máquina de 8 núcleos)
  • Memoria: 25–50% de la RAM del host (4–8GB en una máquina de 16GB)
  • Tamaño de imagen de disco: 60GB+ (las imágenes se acumulan rápido)

Por defecto consume ~2GB en inactivo. Ajusta como se indica arriba.

2.4 Advertencia sobre la licencia

OrganizaciónLicencia
Menos de 250 empleados Y menos de $10M de ingresosGratis (incluido personal)
Por encima de ese umbralDe pago (desde $9/asiento/mes)

Verifica la política de tu empresa antes de usarlo. Página oficial de licencias.


3. Configuración de OrbStack — 5 min

3.1 Instalar

brew install --cask orbstack

O orbstack.dev.

3.2 Primer inicio

Lanza OrbStack → acepta la licencia → los comandos Docker funcionan inmediatamente.

docker --version       # Docker version 27.x.x (incluido en OrbStack)
docker run hello-world

Si Docker Desktop también está instalado, sus entradas en PATH colisionan. Cierra Docker Desktop antes de usar OrbStack.

3.3 Fortalezas únicas de OrbStack

Máquinas Linux (opcional) — crea una VM Ubuntu ligera en 1 segundo. SSH funciona.

orb create ubuntu my-ubuntu
orb -m my-ubuntu        # conectar por SSH

Integración del sistema de archivos — los archivos del contenedor se montan directamente en ~/OrbStack/. Puedes hacer code ~/OrbStack/docker/... desde el host.

Escalado automático de recursos — sin configuración explícita de RAM. Escala arriba/abajo según el uso.

3.4 Licencia

UsoPrecio
Personal (aprendizaje, código abierto)Gratis
Empresa (1+ asiento)$8/mes (Pro) — más barato que Docker Desktop

4. Configuración de colima — 10 min

4.1 Instalar

brew install colima docker docker-compose

El CLI de docker es separado. colima solo proporciona la VM backend.

4.2 Iniciar

colima start
# colima inicia una VM Lima y descarga ~500MB en el primer inicio
 
docker --version
docker run hello-world

Por defecto: 2 CPU, 2GB RAM, 60GB disco. Cámbialos:

colima start --cpu 4 --memory 8 --disk 100

Guardado en ~/.colima/default/colima.yaml.

4.3 Ciclo de vida

colima status       # ¿está ejecutándose?
colima stop         # detener (requiere start de nuevo tras el reinicio)
colima delete       # eliminar la VM misma (se pierden imágenes + volúmenes)

4.4 Kubernetes (opcional)

colima start --kubernetes
kubectl get nodes   # un nodo de colima

Respaldado por k3s. Ligero, pero no sustituye a un clúster real similar a producción.


5. Problemas comunes en Apple Silicon

5.1 Imágenes ARM vs AMD64

La mayoría de las imágenes oficiales (node, python, nginx) ya incluyen compilaciones ARM64. Ocasionalmente verás:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8)

Soluciones:

# 1) Encuentra la etiqueta ARM de la misma imagen
docker pull --platform linux/arm64 myimage:tag
 
# 2) Si es inevitable, fuerza AMD64 (emulación Rosetta — lento)
docker run --platform linux/amd64 myimage:tag

5.2 Rendimiento del montaje de volúmenes

El montaje macOS-FS → contenedor Linux es lento en todos los runtimes. Más notable con node_modules grandes, apps Rails, etc.

  • OrbStack: el más rápido (Virtio-fs optimizado)
  • Docker Desktop: habilita VirtioFS (Configuración → General → «Use Virtio-fs»)
  • colima: colima start --mount-type virtiofs (Lima 1.x+)

O mantén el código fuente dentro de un docker volume — rápido pero complica la integración con el IDE.

5.3 Compilaciones multi-arch con buildx

En CI cuando necesitas publicar tanto AMD64 como ARM64:

docker buildx create --use --name multiarch
docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest --push .

Docker Desktop y OrbStack incluyen buildx. colima puede necesitar configuración adicional.


6. Migración — Docker Desktop → OrbStack

Las imágenes y volúmenes están aislados por runtime, así que no hay migración automática. Orden:

# 1. Exporta imágenes/volúmenes importantes desde Docker Desktop
docker save myimage:tag -o myimage.tar
docker run --rm -v mydata:/data -v $(pwd):/backup alpine \
  tar czf /backup/mydata.tar.gz -C /data .
 
# 2. Cierra Docker Desktop
osascript -e 'quit app "Docker"'
 
# 3. Inicia OrbStack, luego importa
docker load -i myimage.tar
docker run --rm -v mydata:/data -v $(pwd):/backup alpine \
  tar xzf /backup/mydata.tar.gz -C /data

En la práctica, la mayoría prescinde de la migración: un docker compose up desde cero en OrbStack reconstruye todo.


7. Verificar

Todo esto debería funcionar en el runtime que elegiste:

# 1. Básico
docker --version
docker run hello-world
 
# 2. Contenedor + puerto
docker run -d --name nginx -p 8080:80 nginx
curl http://localhost:8080
docker stop nginx && docker rm nginx
 
# 3. Montaje de volumen
mkdir -p /tmp/dockertest && echo "hello" > /tmp/dockertest/test.txt
docker run --rm -v /tmp/dockertest:/data alpine cat /data/test.txt
 
# 4. compose
docker compose version
 
# 5. buildx
docker buildx version

8. Solución de problemas

Cannot connect to the Docker daemon

  • ¿El runtime está realmente ejecutándose? Ícono de Docker Desktop en la barra de menús, orb status, colima status
  • docker context ls — ¿el contexto activo es correcto?
    • Con múltiples runtimes instalados, cambia explícitamente: docker context use default o colima, etc.

Las compilaciones de imágenes son demasiado lentas

  • Confirma que BuildKit está habilitado: DOCKER_BUILDKIT=1 (Docker 23+ lo usa por defecto)
  • Usa el caché: pon las líneas que cambian frecuentemente cerca del final del Dockerfile
  • Reduce el contexto con .dockerignore (excluye .git, node_modules)

docker-compose vs docker compose

  • Nuevo (v2): docker compose (espacio). Recomendado
  • Antiguo (v1): docker-compose (guión). Aproximándose al fin de vida
  • Todos los runtimes incluyen v2. Alias si todavía necesitas el nombre de v1:
    alias docker-compose='docker compose'

Pérdida de memoria después de docker run

  • Monitor de Actividad de macOS → com.docker.virtualization o OrbStack Helper mostrando memoria anormal
  • Reinicia el runtime: Docker Desktop «Restart» / orb restart / colima restart

El montaje de volumen aparece vacío

  • Verifica los permisos de la ruta del host: macOS Documents, Desktop, Downloads necesitan permiso explícito
  • Configuración del Sistema → Privacidad y Seguridad → Archivos y Carpetas → concede acceso al runtime

permission denied al escribir en un archivo montado desde dentro del contenedor

  • El UID del contenedor y el UID del host no coinciden
  • Solución: docker run -u $(id -u):$(id -g) ... o establece USER en el Dockerfile

9. Comparación: Docker Desktop vs WSL2 (usuarios Mac vs Windows)

Una pregunta habitual en equipos mixtos Mac/Windows.

SituaciónRecomendado
Máquina personal MacOrbStack
Máquina corporativa Mac (org grande)Docker Desktop (si licenciado) o colima
Windows + WSL2docker-wsl2 — docker nativo en WSL recomendado
Mandato del equipoLo que eligió la empresa

En equipos multi-SO, estandariza el docker-compose.yml/Dockerfile y la diferencia de runtime desaparece en su mayor parte.


Referencias

Historial de cambios

  • 2026-05-16: Primera versión. Comparación Docker Desktop · OrbStack · colima + problemas de Apple Silicon + migración + seis casos de solución de problemas.