Installer Docker et lancer son premier conteneur | Blog yunt
●Développement Web· Débutant
Installer Docker et lancer son premier conteneur
Installez Docker sous Windows, macOS ou Linux, puis lancez votre premier conteneur : hello-world, Nginx, Node, ports et volumes expliqués pas à pas, avec les erreurs courantes.
YYanis ELMALEH···7 min de lecture
Terme
Sens pratique
Image
Modèle en lecture seule : système de base, fichiers et métadonnées
Conteneur
Processus lancé à partir d’une image
Tag
Étiquette de version d’une image (`nginx:1.27-alpine`)
Registre
Dépôt d’images, comme Docker Hub
Mappage de port
Relie un port de votre machine à un port du conteneur
Installer Docker puis voir un conteneur répondre sur localhost lève souvent le premier blocage : le concept devient concret. Ce guide pas à pas s’adresse aux développeurs web. Il couvre l’installation, le vocabulaire utile, la commande docker run, les ports, les volumes et les gestes du quotidien, sans prétendre traiter toute l’administration système.
L’objectif : à la fin, avoir lancé au moins un conteneur Nginx et un conteneur Node, et comprendre ce que chaque option change.
Avant d’installer
Prévoyez :
un compte administrateur sur votre machine ;
de l’espace disque pour les images et leurs couches ;
sous Windows, WSL 2 (recommandé avec Docker Desktop) ;
sous macOS, Docker Desktop, en version adaptée à votre processeur (Apple Silicon ou Intel) ;
sous Linux, Docker Engine avec le plugin Compose, ou Docker Desktop si vous préférez une interface graphique.
Sur certains PC Windows, l’installateur demande aussi d’activer la virtualisation dans le BIOS ou l’UEFI. Les pages officielles Docker Desktop et Docker Engine listent les prérequis à jour pour chaque système.
Activez WSL 2 si l’assistant vous le propose, et installez une distribution Ubuntu si nécessaire.
Redémarrez si on vous le demande, lancez Docker Desktop et attendez que le moteur soit en cours d’exécution.
Dans PowerShell ou un terminal WSL, testez :
example.shsh
docker version
docker run hello-world
L’image hello-world est minuscule : Docker la télécharge, lance un conteneur qui affiche un message de bienvenue, puis s’arrête. Si vous voyez ce message, toute la chaîne fonctionne.
macOS
La logique est la même : installez Docker Desktop, déplacez l’application dans le dossier Applications, accordez les autorisations demandées, puis attendez que l’état indique que Docker est prêt. Lancez ensuite docker version et docker run hello-world dans le Terminal.
Linux (Debian, Ubuntu et dérivés)
Suivez la procédure officielle d’installation de Docker Engine pour votre distribution : elle passe par les dépôts de Docker, pas forcément par les paquets de la distribution. Installez le moteur et le plugin Compose, puis ajoutez votre utilisateur au groupe docker pour éviter d’utiliser sudo en permanence. Les étapes post-installation expliquent comment faire, et rappellent que ce groupe donne des privilèges élevés. Déconnectez-vous puis reconnectez-vous pour que le changement s’applique.
example.shsh
docker version
docker run hello-world
Quelle que soit la plateforme, méfiez-vous des tutoriels obsolètes qui mélangent docker-compose (ancien binaire) et docker compose (plugin actuel). Utilisez la seconde forme.
Le vocabulaire minimal
Le cycle est toujours le même : on télécharge une image (pull), on lance un conteneur (run), on le liste (ps), on l'arrête (stop) et on le supprime (rm).
Lancer Nginx et afficher une page
example.shsh
docker run --name mon-nginx -p 8080:80 -d nginx:1.27-alpine
Décryptage de la commande :
--name mon-nginx donne un nom lisible au conteneur ;
-p 8080:80 redirige le port 8080 de votre machine vers le port 80 du conteneur ;
-d lance le conteneur en arrière-plan ;
nginx:1.27-alpine désigne l’image et une étiquette précise, plus fiable que latest dès que vous documentez un projet.
Ouvrez http://localhost:8080 : la page d’accueil de Nginx doit s’afficher. Les commandes utiles ensuite :
example.shsh
docker ps # conteneurs en cours d'exécution
docker logs mon-nginx # journaux du conteneur
docker stop mon-nginx # arrêt
docker start mon-nginx # redémarrage
docker rm mon-nginx # suppression
Pour supprimer l’image plus tard, utilisez docker rmi nginx:1.27-alpine, à condition qu’aucun conteneur ne s’en serve encore.
Un premier conteneur de développement avec Node
example.shsh
mkdir -p ~/tmp/docker-node && cd ~/tmp/docker-node
echo'console.log("bonjour depuis le conteneur")' > index.js
docker run --rm -v "$PWD":/app -w /app node:22-bookworm node index.js
--rm supprime le conteneur à la fin de son exécution ;
-v "$PWD":/app monte le dossier courant dans /app ;
-w /app définit le répertoire de travail ;
node:22-bookworm est l’image officielle de Node ;
node index.js est la commande exécutée dans le conteneur.
Vous venez d’exécuter du code Node sans installer Node sur votre machine. Pour un serveur durable, il suffit de publier un port et de laisser le processus tourner ; pour un script ponctuel, ce schéma suffit.
Ports et volumes
Ports : ne vous trompez pas de côté
La syntaxe est toujours hôte:conteneur.
-p 3000:3000 est classique pour une application Express ou Next.js en développement ;
-p 8080:80 relie Nginx, qui écoute sur le port 80 dans le conteneur, au port 8080 de l’hôte (utile si le port 80 est déjà pris).
Si le navigateur ne répond pas, vérifiez dans l’ordre : docker ps, les journaux du conteneur, puis un éventuel pare-feu local.
Volumes : persister et partager des fichiers
Sans volume, ce que vous écrivez dans un conteneur disparaît généralement avec lui. Deux usages sont fréquents en développement web : monter le code source depuis l’hôte, et conserver les données d’une base dans un volume nommé. La documentation sur les volumes approfondit le sujet.
Postgres est alors joignable sur localhost:5432. Changez le mot de passe pour tout usage autre que jetable, et ne le versionnez jamais dans Git.
Nettoyer et dépanner
Nettoyer sans paniquer
Images et conteneurs s’accumulent au fil des essais :
example.shsh
docker ps -a
docker images
docker system df
Un nettoyage prudent se fait avec docker container prune et docker image prune. La commande docker system prune va plus loin : lisez ce qu’elle propose de supprimer avant de confirmer, surtout sur une machine d’entreprise.
Erreurs fréquentes au démarrage
Docker daemon not running : Docker Desktop n’est pas lancé, ou le service Linux est arrêté. Démarrez-le et attendez qu’il soit prêt.
Permission denied (Linux) : votre utilisateur n’est pas dans le groupe docker. Évitez de tout faire en sudo par habitude.
Port already allocated : un autre processus écoute déjà sur ce port. Changez le port côté hôte (8081:80) ou arrêtez l’autre processus.
Téléchargement lent : normal au premier lancement ; les couches sont ensuite réutilisées.
Chemins sous Windows : les chemins et permissions diffèrent entre PowerShell et WSL. En cas de doute, travaillez dans le système de fichiers Linux de WSL.
Bonnes pratiques dès le premier jour
épingler des étiquettes d’images et les noter ;
nommer vos conteneurs de test et les supprimer après usage ;
séparer clairement port hôte et port conteneur dans vos notes ;
garder les secrets hors des historiques partagés (fichiers d’environnement ignorés par Git) ;
lire docker logs avant de chercher l’erreur sur un moteur de recherche.
Check-list « premier succès » : docker version répond, hello-world s’affiche, Nginx répond sur localhost:8080, vous savez arrêter et supprimer un conteneur, un volume ou un montage -v a été testé, et docker compose version répond.
Conclusion
Installer Docker, c’est mettre en place un moteur capable de lancer des environnements isolés. Votre premier succès concret : hello-world, puis Nginx sur un port, puis un script Node avec un montage de dossier. À partir de là, ports et volumes cessent d’être des incantations.
Cela dépend de l’usage (personnel, petite entreprise, grande organisation). Les conditions de licence évoluent : vérifiez-les sur la documentation officielle avant d’installer. Sous Linux, vous pouvez utiliser Docker Engine seul.
Faut-il connaître Kubernetes pour commencer ?
Non. Les conteneurs et Compose suffisent largement en local et pour de nombreux déploiements simples.
Où sont stockées les images ?
Dans les données de Docker sur votre machine : machine virtuelle de Docker Desktop, WSL ou /var/lib/docker selon l’installation. La commande docker system df donne une idée de la place occupée.
Le conteneur a-t-il accès à tout mon disque ?
Non, seulement aux dossiers que vous montez explicitement avec un volume ou un bind mount. Évitez de monter tout votre dossier personnel par facilité.
Dois-je toujours passer par docker run ?
Pour apprendre, oui. Sur un projet réel, vous passerez vite à des Dockerfiles versionnés et à Compose.