Avant de commencer
- Un Mac à puce Apple avec macOS 26 ou ultérieur.
- L'autre application en cours d'exécution, pour que son contexte réponde pendant la copie des images et volumes.
- Une liste de ce dont vous avez vraiment besoin : les images impossibles à télécharger à nouveau et les volumes nommés contenant des données (bases de données, fichiers téléversés). Tout le reste se recrée plus vite.
- Un projet Compose représentatif à essayer en premier. Vérifiez que ses services démarrent, que ses données sont présentes et que ses ports publiés répondent avant de transférer le reste.
Passer à Oxcart, étape par étape
- Installez Oxcart. Téléchargez Oxcart (puce Apple, macOS 26 ou ultérieur) et ouvrez-le. La configuration se fait hors ligne et prend quelques secondes ; elle demande une fois un mot de passe administrateur pour l'utilitaire qui crée les liens des outils en ligne de commande.
- Choisissez quoi faire des outils docker. Si Docker Desktop ou OrbStack a installé
docker, Oxcart affiche chaque outil avec les deux versions et demande votre accord avant de le remplacer. Replace est activé par défaut ; Uninstall remet en place les outils de l'autre application. - Sélectionnez le contexte oxcart. La configuration crée un contexte Docker
oxcart. Il ne devient le contexte courant que si celui-ci estdefaultet que rien n'y répond. Après une autre application, vous exécutez donc généralementdocker context use oxcartvous-même. - Transférez les images nécessaires. Téléchargez-les à nouveau ou transférez-les directement de l'autre application avec
docker saveversdocker load, ce qui conserve les tags et empreintes. - Transférez les volumes contenant des données. Archivez chaque volume nommé dans un fichier tar via un petit conteneur dans l'autre application, puis extrayez-le dans un nouveau volume dans Oxcart.
- Démarrez vos projets Compose. Exécutez
docker compose up -d --waitdans chaque dossier de projet. Les volumes transférés sous le même nom sont repris. - Dirigez les outils configurés en dur vers Oxcart. Les outils qui suivent le contexte Docker trouvent Oxcart automatiquement. Un outil qui lit uniquement
DOCKER_HOSTnécessite de définir cette variable sur le point d'accès du contexteoxcart.
Les commandes
Trouver les contextes et basculer
docker context ls La liste affiche le contexte oxcart et celui de l'autre application, avec un astérisque sur le contexte courant. Ensuite :
docker context use oxcart Copier les images de l'autre application
Transférez les images directement d'un moteur à l'autre, sans fichier intermédiaire. Les tags et empreintes sont conservés.
# OTHER is the other app's context name from `docker context ls`
OTHER=<other-context>
docker --context "$OTHER" save postgres:17-alpine myapp:dev | docker --context oxcart load Pour transférer toutes les images étiquetées en une fois :
docker --context "$OTHER" images --format '{{.Repository}}:{{.Tag}}' | grep -v '<none>' \
| xargs docker --context "$OTHER" save | docker --context oxcart load Les images construites depuis un Dockerfile se reconstruisent souvent plus vite sur Oxcart avec docker build ou docker compose build ; les reconstructions avec cache ont pris 121 ms dans notre benchmark.
Transférer un volume nommé
Cet exemple transfère un volume Postgres nommé pgdata. Il écrit un fichier tar dans un dossier de votre dossier personnel : Oxcart partage votre dossier personnel avec les conteneurs par défaut, et l'autre application doit aussi pouvoir le monter par bind mount. Arrêtez d'abord les conteneurs qui utilisent le volume pour obtenir une copie cohérente.
mkdir -p ~/volume-move && cd ~/volume-move
# 1. Pack the volume in the other app
docker --context "$OTHER" run --rm -v pgdata:/from -v "$PWD":/backup alpine \
tar -C /from -czf /backup/pgdata.tgz .
# 2. Unpack it into a new volume in Oxcart
docker --context oxcart volume create pgdata
docker --context oxcart run --rm -v pgdata:/to -v "$PWD":/backup alpine \
tar -C /to -xzf /backup/pgdata.tgz Compose nomme les volumes <project>_<volume>. Créez le volume Oxcart sous le même nom complet (consultez docker volume ls dans l'autre contexte) et Compose l'utilisera.
Démarrer vos projets Compose
cd ~/code/myproject
docker compose up -d --wait Les dépendances basées sur les contrôles de santé, up --wait, le DNS par nom de service, init: true et network_mode: service: fonctionnent comme avant. Voir Docker Compose sur puce Apple.
Outils qui lisent DOCKER_HOST
Oxcart ne crée ni ne remplace jamais /var/run/docker.sock ; la CLI docker, Compose, Buildx et la plupart des SDK suivent le contexte courant. Si un outil lit uniquement DOCKER_HOST, dirigez-le vers Oxcart :
export DOCKER_HOST="$(docker context inspect oxcart --format '{{.Endpoints.docker.Host}}')" À l'intérieur des conteneurs, monter /var/run/docker.sock fonctionne comme d'habitude pour Testcontainers, docker-outside-of-docker, Portainer et Traefik. Voir Dev Containers et Testcontainers sur Mac.
Revenir en arrière
docker context use <other-context> # back to the other app
docker context use oxcart # and to Oxcart again Ce qui change pour vous après la migration
| Opération | Oxcart 0.1.2 | OrbStack 2.2.3 | Docker Desktop 4.94.0 |
|---|---|---|---|
docker run --rm … true | 42.3 ms | 220 ms | 143 ms |
docker stop | 19.2 ms | 107 ms | 128 ms |
| Arrêter et supprimer 20 conteneurs | 76.7 ms | 1,224 ms | 683 ms |
| Build avec cache | 121 ms | 283 ms | 149 ms |
Oxcart 0.1.2 mesuré le 2026-10-10 avec son client docker 29.9 inclus ; OrbStack 2.2.3 et Docker Desktop 4.94.0 mesurés plus tôt le même jour, sur le même Mac et avec le même dispositif de mesure, avec docker 29.4. Tableaux complets : face à Docker Desktop et face à OrbStack.
Vous disposez aussi d'un serveur MCP local pour les agents de programmation (configurable en un copier-coller), de ports regroupés par dépôt et branche, et d'un trafic de conteneurs qui suit vos règles VPN, DNS et pare-feu (guide réseau).
Questions
Dois-je d'abord désinstaller Docker Desktop ou OrbStack ?
Non. Oxcart s'installe à côté avec son propre contexte Docker oxcart. Basculez avec docker context use. Gardez l'autre application installée jusqu'à avoir transféré ce dont vous avez besoin.
Oxcart va-t-il changer mon contexte Docker courant ?
Uniquement si le contexte courant est default et que rien n'y répond. Si le contexte d'une autre application est courant, Oxcart le laisse intact et vous choisissez avec docker context use oxcart.
Mes images et volumes sont-ils transférés automatiquement ?
Non. Chaque application conserve ses propres images et volumes. Téléchargez les images à nouveau ou transférez-les directement avec docker save | docker load ; transférez les volumes nommés contenant des données avec un fichier tar, comme indiqué ci-dessus. Les volumes contenant des caches ou d'autres données jetables peuvent simplement être recréés.
Que deviennent mes connexions aux registres ?
Si un téléchargement demande des identifiants, exécutez docker login une fois. Oxcart stocke le mot de passe dans le Trousseau macOS via docker-credential-osxkeychain ; config.json conserve uniquement le nom du registre.
Puis-je conserver mon workflow de développement actuel ?
Oui. Continuez à utiliser la CLI docker, Compose, Buildx, Dev Containers et Testcontainers. Oxcart prend en charge les conteneurs privilégiés, y compris privileged: true dans Compose. Transférez d'abord un projet, vérifiez ses ports et ses données, puis passez au reste quand vous êtes prêt. Votre autre contexte Docker reste disponible tout au long de l'opération.
Les mises à jour conservent-elles mes conteneurs ?
Oui. Une mise à jour d'Oxcart conserve tous les conteneurs, images, volumes et réseaux.
Comment revenir en arrière ?
Exécutez docker context use avec le nom du contexte de l'autre application. Si vous désinstallez Oxcart, Uninstall remet en place les outils docker qu'il avait remplacés.
Sources et méthode
- Configuration, outils en ligne de commande et contexte Docker : Oxcart 0.1.3 tel que distribué.
- Compatibilité : testée sur Oxcart le 2026-10-10 (sauvegarde et chargement conservant tags et empreintes, Compose, socket Docker dans les conteneurs).
- Benchmarks : Oxcart 0.1.2, OrbStack 2.2.3 et Docker Desktop 4.94.0, mesurés le 2026-10-10 sur un Apple M5 Max, 8 CPU et 12 GB chacun, un produit à la fois, médianes de cinq échantillons.
- Les noms de contexte des autres applications varient selon l'application et la version : consultez-les avec
docker context ls.