03 - Docker Desktop, Engine et alternatives
Ce que tu vas apprendre
- Ce que Docker Desktop fait (et cache) sous le capot
- La différence entre Docker Desktop et Docker Engine
- Les alternatives : Colima, Podman, Rancher Desktop
- Les implications de la licence Docker Desktop
Prerequisites
- Avoir lu l'article 02 - Architecture
- Avoir Docker installe (peu importe comment)
La surprise de la VM cachee
La première fois qu'un collegue m'a dit "Docker Desktop, c'est juste une VM Linux", j'ai cru qu'il exagerait. Et puis j'ai regarde l'Activity Monitor sur mon Mac. Un processus qemu-system-aarch64 mangeait 4 Go de RAM. C'etait la VM Linux que Docker Desktop lance en arriere-plan.
Sur Mac et Windows, les conteneurs ne tournent pas directement sur ton OS. Ils tournent dans une machine virtuelle Linux. Docker Desktop te cache cette complexité. C'est pratique, mais ca a un coût.
Docker Engine vs Docker Desktop
Docker Engine
Docker Engine, c'est le daemon (dockerd), containerd, runc, et le CLI. C'est le coeur de Docker. Sur Linux, tu peux l'installer directement :
bash# Installation sur Ubuntu
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Pas d'interface graphique, pas de VM, pas de surcouche. Le daemon tourne nativement sur le noyau Linux de ta machine. C'est la solution la plus legere et la plus performante.
Docker Engine est gratuit et open source.
Docker Desktop
Docker Desktop, c'est Docker Engine emballe dans une application de bureau pour Mac et Windows. Il inclut :
- Une VM Linux (HyperKit sur ancien Mac, Apple Virtualization Framework sur M1+, Hyper-V ou WSL2 sur Windows)
- Le Docker CLI
- Docker Compose
- Docker Scout (analyse de vulnérabilités)
- Une interface graphique
- Le partage de fichiers entre l'hote et la VM
- La gestion des ressources (CPU, RAM alloues a la VM)
bash# Verifier ce que Docker Desktop utilise
docker info | grep "Operating System"
# Operating System: Docker Desktop
Le partage de fichiers entre ton Mac/Windows et la VM Linux est le point faible historique. Les volumes montes sont plus lents que sur Linux natif, surtout sur Mac. Docker a ameliore ca avec VirtioFS, mais le delta existe toujours.
La question de la licence
Depuis janvier 2022, Docker Desktop est payant pour les entreprises de plus de 250 employes ou 10 millions de dollars de chiffre d'affaires. Le prix va de 5 a 24 dollars par mois par utilisateur.
Pour un usage personnel, pour l'education, ou pour les petites entreprises, c'est gratuit.
Cette décision a pousse beaucoup de devs et d'entreprises a chercher des alternatives.
Colima : Docker sans Docker Desktop sur Mac
Colima (Containers on Lima) est une alternative open source pour macOS et Linux. Il lance une VM Lima avec Docker ou containerd a l'intérieur.
bash# Installation
brew install colima docker docker-compose
# Demarrage
colima start
# Avec des ressources specifiques
colima start --cpu 4 --memory 8 --disk 60
# Verification
docker ps
Colima utilise le meme Docker CLI. Tes commandes docker et docker compose fonctionnent de manière identique. La seule différence, c'est le backend qui gere la VM.
bash# Status de la VM
colima status
# Arreter
colima stop
# Supprimer
colima delete
Les avantages de Colima :
- Gratuit et open source
- Leger (pas d'interface graphique)
- Supporte les Mac Apple Silicon nativement
- Compatible avec le Docker CLI standard
L'inconvenient : la configuration initiale est manuelle. Pas d'interface graphique pour ajuster les ressources. Et les mises à jour ne sont pas automatiques.
Podman : le Docker sans daemon
Podman est l'alternative la plus radicale. Pas de daemon en arriere-plan. Chaque commande lance directement les conteneurs via conmon et runc.
bash# Installation sur Mac
brew install podman
# Initialiser la VM (necessaire sur Mac)
podman machine init
podman machine start
# Les commandes sont identiques a Docker
podman run -d -p 8080:80 nginx
podman ps
podman images
La compatibilité avec Docker est quasi-totale. Tu peux meme créer un alias :
bashalias docker=podman
La killer feature de Podman, c'est le mode rootless. Les conteneurs tournent sans privileges root, ce qui réduit la surface d'attaque. Docker supporte aussi le mode rootless maintenant, mais Podman l'a eu en premier et c'est le mode par défaut.
Podman gere aussi les pods, un concept venu de Kubernetes. Un pod regroupe plusieurs conteneurs qui partagent le meme réseau. Utile si tu travailles avec Kubernetes.
Rancher Desktop
Rancher Desktop est une autre alternative avec interface graphique. Il supporte Docker (via Moby) ou containerd comme backend.
bash# Apres installation, choisir le backend dans l'interface
# Puis utiliser normalement
docker ps
# ou
nerdctl ps # si backend containerd
Il inclut aussi une distribution Kubernetes locale. Si tu as besoin de tester des déploiements k8s en local, c'est une option a considérer.
Comparaison
| Docker Desktop | Colima | Podman | Rancher Desktop | |
|---|---|---|---|---|
| OS | Mac, Windows, Linux | Mac, Linux | Mac, Windows, Linux | Mac, Windows, Linux |
| Licence | Payant (entreprise) | MIT | Apache 2.0 | Apache 2.0 |
| Interface | GUI | CLI | CLI | GUI |
| Backend | Moby + VM | Docker/containerd + Lima | conmon + runc | Moby/containerd |
| Daemon | Oui | Oui | Non | Oui |
| Rootless | Supporte | Supporte | Par défaut | Supporte |
| Docker Compose | Inclus | Via plugin | Via podman-compose | Inclus |
Mon choix
Sur paltemps.fr, on utilise Colima sur Mac et Docker Engine natif sur les serveurs Linux. C'est le meilleur compromis entre simplicité, performance, et coût. Colima a eu quelques bugs au début, mais depuis la version 0.6, c'est solide.
Si tu es sur Linux, installe Docker Engine directement. Pas besoin de Docker Desktop, pas besoin d'alternative. C'est natif et c'est gratuit.
Si tu debutes et que tu veux un truc qui marche sans configuration, Docker Desktop reste le chemin le plus simple. Tu pourras migrer plus tard.
Installation rapide par plateforme
Linux (Ubuntu/Debian)
bashcurl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Deconnecte-toi et reconnecte-toi
Mac avec Colima
bashbrew install colima docker docker-compose
colima start --cpu 4 --memory 8
Windows avec WSL2
Installe Docker Desktop ou configure Docker Engine dans WSL2 :
bash# Dans ton terminal WSL2
curl -fsSL https://get.docker.com | sh
sudo service docker start
Résumé
- Docker Desktop cache une VM Linux sur Mac et Windows
- Docker Engine est le coeur open source, gratuit et natif sur Linux
- Colima est la meilleure alternative gratuite sur Mac
- Podman fonctionne sans daemon et est rootless par défaut
- Docker Desktop est payant pour les grandes entreprises depuis 2022
- Sur Linux, installe Docker Engine directement
Precedent : 02 - Architecture | Suivant : 04 - Dockerfile