Dory: Una aplicación nativa gratuita y de código abierto para macOS para contenedores Docker y Linux
Dory es una aplicación nativa gratuita y de código abierto para macOS para contenedores Docker y Linux, que ofrece una alternativa ligera a OrbStack y Docker Desktop con un enfoque de máquina virtual compartida.
¿Qué es Dory?
Dory es una aplicación nativa gratuita y de código abierto para macOS para gestionar contenedores Docker y Linux. Está diseñada como una alternativa ligera a Docker Desktop y OrbStack, construida completamente con Swift y SwiftUI. La idea central es simple: en lugar de ejecutar una VM por contenedor, Dory inicia una única micro-VM Linux persistente que ejecuta todos tus contenedores. Esto resulta en un uso de memoria significativamente menor, medido aproximadamente 4,7 veces menos memoria en reposo que los enfoques de VM por contenedor (por ejemplo, ~122 MB frente a ~574 MB para dos contenedores).
¿Por qué Dory?
Una VM para todos los contenedores
Dory aprovecha la pila de contenedores de código abierto de Apple para iniciar una única micro-VM Linux. Este modelo de VM compartida es la clave de su eficiencia. El ahorro de memoria escala con la cantidad de contenedores que ejecutes, lo que lo hace ideal para desarrolladores que necesitan ejecutar múltiples servicios localmente.
Pequeño y silencioso
La propia aplicación Dory tiene solo ~6 MB. Utiliza aproximadamente un 0% de CPU en reposo. No hay indexadores en segundo plano, ni telemetría, ni ruido de ventilador innecesario. Esto es una restricción de diseño, no una característica futura.
Gratis para siempre
Dory es completamente gratuito. No hay licencias por usuario, ni niveles de "uso comercial", ni cuentas, ni inicio de sesión requerido. Está licenciado bajo GPL-3.0, con el código fuente completo disponible en GitHub.
Tu CLI de Docker funciona sin cambios
Dory sirve la API de Docker en ~/.dory/dory.sock y registra un contexto Docker dory. Esto significa que puedes usar docker run, docker compose y todos tus scripts y herramientas existentes sin modificaciones.
Nativo, no Electron
Dory está construido con Swift y SwiftUI. Proporciona un agente en la barra de menú y un panel completo. Soporta inicio al iniciar sesión, modo claro y oscuro, y no tiene dependencias de Chromium, Node o telemetría.
Lo que obtienes
Docker, completo
- Contenedores: Estadísticas en vivo, registros, terminal integrada, inspección del entorno. Crear, iniciar, detener, reiniciar y eliminar desde la UI o CLI.
- Imágenes: Extraer, construir desde una carpeta de contexto, ejecutar, limpiar, inicio de sesión en registro, inspección completa.
- Volúmenes: Explorador de archivos incluido.
- Redes: Subred, puerta de enlace e inspección de contenedores adjuntos.
- Compose:
up/downcon.env+ interpolación de variables, ordendepends_ony esperaservice_healthy.
Kubernetes, con un clic
Dory ejecuta k3s dentro de la VM compartida con versiones seleccionables de Kubernetes. Incluye un navegador de clúster para pods, despliegues, servicios, mapas de configuración, secretos e ingress, todo con estado en vivo, pod exec, controles de escala/reinicio/despliegue y kubectl apply desde la aplicación.
Máquinas Linux
Puedes iniciar VMs completas de Ubuntu, Debian, Fedora, Alpine o Arch con instantáneas, acceso a terminal y recetas de casos de uso (Node, Python, Go, Rust, etc.) que preparan la máquina lista para codificar. También hay un compositor para seleccionar manualmente tiempos de ejecución, herramientas y paquetes.
Redes que desaparecen
Los puertos publicados están disponibles en localhost. Se crean dominios automáticos *.dory.local para cada contenedor, y HTTPS local es emitido por una CA local. Todo esto está sujeto a consentimiento: nada se instala silenciosamente.
Emulación x86/amd64
Las imágenes x86/amd64 se ejecutan en silicona de Apple mediante emulación.
Inicio sin fricción
El primer lanzamiento te guía a través de todo, incluyendo una instalación con un clic del conjunto de herramientas de contenedores de código abierto de Apple si falta. La migración importa tus imágenes y contenedores desde Docker Desktop o OrbStack.
Instalación
Homebrew
brew install --cask Augani/dory/dory
Manual
Descarga el .dmg notarizado desde la página de lanzamientos, arrastra Dory a Aplicaciones y ábrelo. El primer lanzamiento te guía a través del resto.
Motores de backend
Dory selecciona un backend automáticamente, pero puedes anularlo con la variable de entorno DORY_RUNTIME. Todos los backends comparten un protocolo ContainerRuntime.
DORY_RUNTIME |
Backend | Modelo |
|---|---|---|
shared (predeterminado en hosts compatibles) |
VM compartida | Un dockerd persistente en VM para todos los contenedores (estilo OrbStack). Independiente: no requiere Docker. Requiere macOS 26+ en silicona de Apple. |
apple |
Contenedor Apple | Una micro-VM ligera por contenedor. Requiere macOS 26+ en silicona de Apple. |
docker |
API del motor Docker | Proxy transparente a un socket compatible con Docker existente (Docker Desktop, OrbStack, Colima, Rancher Desktop, Podman). Funciona en macOS antiguo e Intel cuando el motor anfitrión lo hace. |
mock |
Simulación | Datos de muestra en memoria para desarrollo de UI. |
Requisitos
- Silicona de Apple, macOS 15 (Sequoia) o posterior: Experiencia completa con el motor propio de Dory, una VM compartida, baja memoria, Kubernetes, máquinas Linux y dominios
*.dory.local. Nada más que instalar. - Macs Intel: Dory se ejecuta como una interfaz nativa (aplicación, CLI y contexto docker) para un motor compatible con Docker que instales por separado (Colima, Docker Desktop, Rancher Desktop, Podman u OrbStack). Un motor Intel nativo (a través de Virtualization.framework) está en la hoja de ruta.
- Xcode 27 o posterior: Requerido para compilar desde el código fuente.
Compilar y ejecutar desde el código fuente
scripts/build.sh # verificación de compilación
scripts/test.sh # suite de pruebas completa
scripts/shot.sh # compilar, lanzar y capturar la ventana
O abre Dory.xcodeproj en Xcode y ejecuta.
Integración opcional del sistema
Estos requieren una concesión administrativa única (la misma que solicita OrbStack) y son ejecutados por ti, nunca silenciosamente:
scripts/enable-networking.sh # dominios *.dory.local + confiar en la CA local
scripts/enable-kubernetes.sh # iniciar k3s en la VM compartida
Arquitectura
Dory.app (SwiftUI)
│
▼
Protocolo ContainerRuntime ──► { VM compartida · Contenedor Apple · API Docker · Simulación }
│
├─ shim doryd API REST Docker sobre ~/.dory/dory.sock
├─ Motor Compose YAML → DAG de dependencias → reconciliar
├─ servicios del motor: máquina de estados de salud · síntesis de eventos · volúmenes anónimos
└─ Red: CA local (TLS) · Enrutador de dominios (*.dory.local) · reenvío de puertos
Todo es ligero en dependencias: el transporte HTTP/socket Unix, el analizador YAML y el cliente y servidor de la API de Docker están hechos a mano, manteniendo la compilación pequeña y determinista. El paquete Packages/ContainerizationEngine enlaza el marco de contenedores de Apple para iniciar la VM Linux en el proceso.
¿Qué sigue?
Máquinas de desarrollo portátiles que puedes respaldar y restaurar, acceso remoto a tu motor y entornos aislados para agentes de IA. Sigue los lanzamientos y abre un problema si quieres dar forma a lo que viene primero.
Contribuir
Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md.
Licencia
GPL-3.0 © 2026 Contribuyentes de Dory.