Dory : une application macOS native, gratuite et open-source pour Docker et les conteneurs Linux

Dory est une application macOS native, gratuite et open-source pour Docker et les conteneurs Linux, offrant une alternative légère à OrbStack et Docker Desktop avec une approche de machine virtuelle partagée.

Qu'est-ce que Dory ?

Dory est une application macOS native, gratuite et open-source pour gérer Docker et les conteneurs Linux. Conçue comme une alternative légère à Docker Desktop et OrbStack, elle est entièrement construite avec Swift et SwiftUI. L'idée centrale est simple : au lieu d'exécuter une machine virtuelle par conteneur, Dory démarre une seule micro-VM Linux persistante qui exécute tous vos conteneurs. Cela permet une utilisation mémoire considérablement réduite – mesurée à environ 4,7× moins de mémoire au repos par rapport aux approches avec une VM par conteneur (par exemple, ~122 Mo contre ~574 Mo pour deux conteneurs).

Pourquoi Dory ?

Une VM pour tous les conteneurs

Dory exploite la pile de conteneurs open-source d'Apple pour démarrer une seule micro-VM Linux. Ce modèle de VM partagée est la clé de son efficacité. Les économies de mémoire augmentent avec le nombre de conteneurs que vous exécutez, ce qui le rend idéal pour les développeurs qui doivent exécuter plusieurs services localement.

Petit et silencieux

L'application Dory elle-même ne pèse qu'environ 6 Mo. Elle utilise environ 0 % de CPU au repos. Pas d'indexeurs en arrière-plan, pas de télémétrie, et pas de bruit de ventilateur inutile. C'est une contrainte de conception, pas une fonctionnalité future.

Gratuit pour toujours

Dory est complètement gratuit. Pas de licences par utilisateur, pas de niveaux « utilisation commerciale », pas de comptes, et pas de connexion requise. Il est sous licence GPL-3.0, avec le code source complet disponible sur GitHub.

Votre CLI Docker fonctionne comme avant

Dory sert l'API Docker sur ~/.dory/dory.sock et enregistre un contexte Docker dory. Cela signifie que vous pouvez utiliser docker run, docker compose, et tous vos scripts et outils existants sans modification.

Natif, pas Electron

Dory est construit avec Swift et SwiftUI. Il fournit un agent dans la barre de menus et un tableau de bord complet. Il prend en charge le lancement à la connexion, les modes clair et sombre, et n'a pas de dépendances Chromium, Node ou de télémétrie.

Ce que vous obtenez

Docker, complet

  • Conteneurs : Statistiques en direct, logs, terminal intégré, inspection de l'environnement. Créez, démarrez, arrêtez, redémarrez et supprimez depuis l'interface utilisateur ou la CLI.
  • Images : Tirez, construisez à partir d'un dossier de contexte, exécutez, nettoyez, connexion au registre, inspection complète.
  • Volumes : Navigateur de fichiers inclus.
  • Réseaux : Sous-réseau, passerelle et inspection des conteneurs attachés.
  • Compose : up/down avec .env + interpolation de variables, ordre depends_on, et attente service_healthy.

Kubernetes, en un clic

Dory exécute k3s à l'intérieur de la VM partagée avec des versions de Kubernetes sélectionnables. Il comprend un navigateur de cluster pour les pods, déploiements, services, configmaps, secrets et ingresses, le tout avec des contrôles de santé en direct, pod exec, scale/restart/rollout, et kubectl apply depuis l'application.

Machines Linux

Vous pouvez démarrer des VMs Ubuntu, Debian, Fedora, Alpine ou Arch complètes avec des instantanés, un accès terminal, et des recettes d'utilisation (Node, Python, Go, Rust, etc.) qui provisionnent la machine prête à coder. Il y a aussi un compositeur pour choisir manuellement les environnements d'exécution, outils et paquets.

Un réseau qui disparaît

Les ports publiés sont disponibles sur localhost. Des domaines automatiques *.dory.local sont créés pour chaque conteneur, et le HTTPS local est émis par une autorité de certification locale. Tout cela est soumis à consentement – rien n'est installé silencieusement.

Émulation x86/amd64

Les images x86/amd64 fonctionnent sur Apple silicon via émulation.

Démarrage sans friction

Le premier lancement vous guide à travers tout, y compris une installation en un clic de la pile de conteneurs open-source d'Apple si elle est manquante. La migration importe vos images et conteneurs depuis Docker Desktop ou OrbStack.

Installation

Homebrew

brew install --cask Augani/dory/dory

Manuel

Téléchargez le .dmg notarié depuis la page des versions, glissez Dory dans Applications, et ouvrez-le. Le premier lancement vous guide pour le reste.

Moteurs backend

Dory sélectionne un backend automatiquement, mais vous pouvez le remplacer avec la variable d'environnement DORY_RUNTIME. Tous les backends partagent un protocole ContainerRuntime.

DORY_RUNTIME Backend Modèle
shared (par défaut sur les hôtes supportés) VM partagée Un dockerd-dans-VM persistant pour tous les conteneurs (style OrbStack). Autonome : pas besoin de Docker. Nécessite macOS 26+ sur Apple silicon.
apple Conteneur Apple Une micro-VM légère par conteneur. Nécessite macOS 26+ sur Apple silicon.
docker API Docker Engine Proxy transparent vers un socket Docker compatible existant (Docker Desktop, OrbStack, Colima, Rancher Desktop, Podman). Fonctionne sur macOS plus ancien et Intel lorsque le moteur hôte le fait.
mock Mock Données d'exemple en mémoire pour le développement de l'interface utilisateur.

Prérequis

  • Apple silicon, macOS 15 (Sequoia) ou ultérieur : Expérience complète avec le moteur intégré de Dory, une VM partagée, faible mémoire, Kubernetes, machines Linux, et domaines *.dory.local. Rien d'autre à installer.
  • Mac Intel : Dory fonctionne comme une interface native (application, CLI et contexte docker) pour un moteur compatible Docker que vous installez séparément (Colima, Docker Desktop, Rancher Desktop, Podman ou OrbStack). Un moteur Intel natif (via Virtualization.framework) est prévu.
  • Xcode 27 ou ultérieur : Requis pour compiler à partir des sources.

Compiler et exécuter à partir des sources

scripts/build.sh # vérification de compilation
scripts/test.sh # suite de tests complète
scripts/shot.sh # compiler, lancer et capturer la fenêtre

Ou ouvrez Dory.xcodeproj dans Xcode et exécutez.

Intégration système optionnelle

Celles-ci nécessitent une autorisation administrative unique (la même que celle demandée par OrbStack) et sont exécutées par vous, jamais silencieusement :

scripts/enable-networking.sh # domaines *.dory.local + faire confiance à l'autorité de certification locale
scripts/enable-kubernetes.sh # amorcer k3s dans la VM partagée

Architecture

Dory.app (SwiftUI)
│
▼
Protocole ContainerRuntime ──► { VM partagée · Conteneur Apple · API Docker · Mock }
│
├─ shim doryd API REST Docker sur ~/.dory/dory.sock
├─ Moteur Compose YAML → DAG de dépendances → réconciliation
├─ services moteur machine d'état de santé · synthèse d'événements · volumes anonymes
└─ Net LocalCA (TLS) · DomainRouter (*.dory.local) · redirection de ports

Tout est léger en dépendances : le transport HTTP/socket Unix, l'analyseur YAML, et le client et serveur API Docker sont faits maison, ce qui maintient la construction petite et déterministe. Le paquet Packages/ContainerizationEngine lie le framework de conteneurisation d'Apple pour démarrer la VM Linux dans le processus.

Prochaines étapes

Machines de développement portables que vous pouvez sauvegarder et restaurer, accès à distance à votre moteur, et environnements sandboxés pour les agents IA. Suivez les versions et ouvrez un problème si vous voulez influencer les priorités.

Contribuer

Les contributions sont les bienvenues. Voir CONTRIBUTING.md.

Licence

GPL-3.0 © 2026 Contributeurs de Dory.

Source

Augani/dory : Une application macOS native, gratuite et open-source pour Docker et les conteneurs Linux, une alternative à OrbStack et Docker Desktop. Universelle pour Intel et Apple silicon.