đł Docker sur macOS Apple Silicon avec Colima
Guide complet dâinstallation + bonnes pratiques + QEMU optionnel + intĂ©gration VS Code + templates .devcontainer.
Sans Docker Desktop â approche recommandĂ©e pour un environnement de dev moderne.
đŻ Objectif
Mettre en place un environnement Docker :
- â LĂ©ger et performant sur Apple Silicon (M1/M2/M3/M4)
- â 100 % open source (pas de dĂ©pendance Docker Desktop)
- â Reproductible (CI/CD friendly)
- â IntĂ©grĂ© proprement avec VS Code (Docker + Dev Containers)
- â Compatible images Intel via QEMU (optionnel)
đ§ Pourquoi ne pas utiliser Docker Desktop ?
Sur macOS, Docker ne tourne pas ânativementâ (pas de kernel Linux). Il faut donc une VM Linux.
Docker Desktop fournit cette VM mais ajoute :
- une surcouche propriétaire + UI
- une consommation CPU/RAM plus élevée
- une licence payante en entreprise (selon conditions Docker)
đ Colima fournit une VM Linux minimaliste via Lima avec de trĂšs bonnes perfs et un workflow CLI standard :
Docker CLI â Colima â Lima VM â Linux ARM64 natif
đŠ 1) PrĂ©-requis
â 1.1 VĂ©rifier que tu es bien sur Apple Silicon
uname -m
Résultat attendu : arm64.
â 1.2 Installer Homebrew (si absent)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Puis :
brew update
brew doctor
đ§ 2) Installer Docker (CLI) + Colima
â ïž On installe le CLI Docker, pas Docker Desktop.
brew install colima docker docker-compose
đ§© QEMU (optionnel â voir section dĂ©diĂ©e)
Ne lâinstalle que si tu dois exĂ©cuter des images amd64 (Intel) sur ton Mac ARM.
đ 3) DĂ©marrer Colima (configuration recommandĂ©e)
Démarrage optimisé poste dev (à adapter selon RAM/CPU) :
colima start --cpu 4 --memory 6 --disk 60 --arch aarch64
Recommandations ressources
| Ressource | Valeur conseillée |
|---|---|
| CPU | 4 (ou ~œ de tes cores) |
| RAM | 6â8 Go (plus si grosses stacks) |
| Disque | â„ 60 Go |
| Arch | aarch64 (ARM natif) |
đĄ Ăvite
x86_64: ce serait de lâĂ©mulation, donc plus lent.
â 4) VĂ©rifier lâinstallation
docker version
Tu dois voir Client et Server.
Test réel :
docker run --rm hello-world
âïž 5) VĂ©rifier / fixer le contexte Docker
Colima crée généralement un contexte Docker dédié.
Lister :
docker context ls
RĂ©sultat attendu : colima * (lâastĂ©risque indique le contexte actif).
Si nécessaire :
docker context use colima
đ 6) Workflow quotidien recommandĂ©
Démarrer la VM quand tu en as besoin :
colima start
Lancer ton projet :
docker compose up -d
ArrĂȘter proprement en fin de journĂ©e :
colima stop
â Avantage : pas de daemon Docker qui tourne en permanence et consomme des ressources.
⥠7) Bonnes pratiques de performance (macOS + VM)
7.1 Préférer des images ARM64 natives
Apple Silicon = linux/arm64. Beaucoup dâimages sont multi-arch, mais pas toutes.
Vérifier une image :
docker buildx imagetools inspect nginx
Tu veux voir linux/arm64 dans la liste des plateformes.
7.2 Volumes & filesystem : rĂšgles dâor
Sur macOS, ton code est montĂ© dans une VM Linux â I/O plus sensibles quâun Linux natif.
â Ă faire
- Monter uniquement les dossiers nécessaires
- Utiliser des volumes Docker pour DB/cache (meilleures perfs + moins de surprises)
- Avoir un
.dockerignorestrict - Limiter les gros rĂ©pertoires âbruyantsâ (ex:
node_modules, caches)
â Ă Ă©viter
- Binder tout
$HOME - Synchroniser des centaines de milliers de fichiers inutilement
- Binder
node_modulessi tu peux lâĂ©viter
Exemple de volume âacceptableâ
services:
app:
volumes:
- .:/app:delegated
đ§ 8) Commandes Colima utiles
| Commande | Usage |
|---|---|
colima start |
Démarrer la VM |
colima stop |
ArrĂȘter |
colima restart |
Redémarrer |
colima status |
Ătat + ressources |
colima ssh |
Shell dans la VM (debug) |
colima delete |
Reset complet (â ïž supprime donnĂ©es VM) |
đ 9) OĂč sont stockĂ©es les donnĂ©es ?
Colima stocke ses données ici :
~/.colima/
Tu peux y trouver configuration, disque VM, etc. (utile pour debug/backup).
đ§© 10) QEMU (OPTIONNEL)
10.1 Ă quoi sert QEMU ?
Ton Mac est ARM64. Certaines images Docker sont uniquement Intel (amd64).
QEMU permet dâexĂ©cuter ces images via Ă©mulation CPU.
Sans QEMU, tu peux rencontrer :
exec format error
Avec QEMU :
- lâimage peut dĂ©marrer
- mais câest plus lent
10.2 Quand lâinstaller ?
Uniquement si tu dois utiliser :
- des images legacy non multi-arch
- des outils internes entreprise construits en
amd64 - certaines bases/outils âhistoriquesâ
10.3 Installer QEMU (option)
brew install qemu
colima restart
10.4 Impact performance
| Mode | Performance |
|---|---|
| ARM natif | đ„ trĂšs bon |
| amd64 via QEMU | đą 3Ă Ă 6Ă plus lent (parfois plus) |
10.5 VĂ©rifier lâarchitecture dâune image
docker image inspect <image> | grep -i architecture
đ» 11) VS Code : extensions & configuration
11.1 Extensions recommandées
- Docker â
ms-azuretools.vscode-docker - Dev Containers â
ms-vscode-remote.remote-containers - Remote Explorer â
ms-vscode.remote-explorer - GitLens â
eamodio.gitlens(optionnel mais pratique)
11.2 Forcer VS Code Ă utiliser le socket Colima
VS Code peut chercher Docker Desktop par défaut. Configure le socket Colima dans settings.json :
{
"docker.host": "unix:///Users/<USER>/.colima/default/docker.sock"
}
Remplace
<USER>par ton user macOS.
11.3 Tester
Dans VS Code :
Cmd + Shift + P â Docker: Show Containers
Tu dois voir les containers gérés par Colima.
đŠ 12) Quâest-ce quâun template .devcontainer ?
Un template .devcontainer permet dâouvrir ton projet directement dans un conteneur avec tout lâenvironnement prĂȘt : langages, outils, extensions VS Code, etc.
đ VS Code exĂ©cute le workspace dans le container, pas sur ton Mac.
Pourquoi câest une best practice ?
- â Environnement reproductible
- â ZĂ©ro âça marche sur ma machineâ
- â Onboarding immĂ©diat dâun dev
- â Alignement DEV/CI/PROD
- â Mac propre (moins dâinstallations locales)
12.1 Structure typique
my-project/
âââ docker-compose.yml
âââ .devcontainer/
âââ devcontainer.json
âââ Dockerfile (optionnel)
12.2 Exemple devcontainer.json (avec docker-compose)
{
"name": "Dev Environment",
"dockerComposeFile": "../docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"customizations": {
"vscode": {
"extensions": [
"ms-azuretools.vscode-docker",
"ms-vscode-remote.remote-containers",
"eamodio.gitlens"
]
}
}
}
Ce fichier :
- démarre
docker compose - se connecte au service
app - monte ton code dans
/workspace - installe les extensions VS Code listées
12.3 Exemple Dockerfile âdevâ (optionnel)
Si tu veux un conteneur spécifique au développement (outils, debug, etc.) :
FROM php:8.3-cli
RUN apt-get update && apt-get install -y \
git unzip curl ca-certificates
# Exemple: dépendances PHP
RUN docker-php-ext-install pdo pdo_mysql
# Exemple: xdebug
# RUN pecl install xdebug && docker-php-ext-enable xdebug
12.4 Utiliser Dev Containers dans VS Code
Ouvre le dossier du projet, puis :
Cmd + Shift + P â Dev Containers: Reopen in Container
VS Code va :
- construire/mettre Ă jour lâimage (si besoin)
- démarrer les services (compose)
- connecter ton IDE au conteneur
- installer les extensions
đïž 13) Build multi-architecture (CI/CD)
Pour builder des images compatibles ARM + Intel :
docker buildx create --use
docker buildx build --platform linux/amd64,linux/arm64 -t myimage:latest .
đĄ Ajoute
--pushsi tu pousses sur un registry.
đ§č 14) Maintenance
Nettoyage des ressources Docker :
docker system prune -af
Reset complet de Colima (â ïž supprime la VM) :
colima delete
colima start --cpu 4 --memory 6 --disk 60 --arch aarch64
â Conclusion
Stack recommandée sur macOS Apple Silicon :
Colima + Docker CLI + VS Code Dev Containers
(QEMU uniquement si legacy amd64)
Tu obtiens :
- une VM Linux minimaliste et performante
- un workflow Docker standard
- un environnement dev reproductible et industrialisable
- une intégration IDE propre, portable et scalable