Les commandes Docker essentielles
Les commandes Docker essentielles
Cette leçon couvre toutes les commandes Docker que vous utiliserez quotidiennement.
Vue d’ensemble des commandes
| Catégorie | Commandes | Usage |
|---|---|---|
| Images | pull, build, push, images, rmi | Gérer les images |
| Conteneurs | run, start, stop, rm, ps, exec | Gérer les conteneurs |
| Réseau | network create, connect, ls | Connecter les conteneurs |
| Volumes | volume create, ls, rm | Persister les données |
Gestion des images
Télécharger une image
# Télécharger Node.js Alpine
docker pull node:20-alpine
# Télécharger nginx
docker pull nginx:1.25
# Télécharger PostgreSQL
docker pull postgres:16
Lister les images
docker images
docker image ls
docker images -q
Supprimer une image
docker rmi node:20-alpine
docker rmi -f image_id
docker image prune -a
Gestion des conteneurs
Exécuter un conteneur
# Lancer nginx en arrière-plan
docker run -d -p 8080:80 --name mon-nginx nginx:1.25
# Lancer interactif
docker run -it ubuntu:22.04 bash
# Avec variables d'environnement
docker run -d -e POSTGRES_PASSWORD=secret postgres:16
# Avec un volume
docker run -d -v mes-donnees:/data postgres:16
Options importantes :
| Option | Description |
|---|---|
| -d | Mode détaché (arrière-plan) |
| -p | Mapper un port (host:container) |
| —name | Nommer le conteneur |
| -e | Variable d’environnement |
| -v | Monter un volume |
| -it | Mode interactif + TTY |
| —rm | Supprimer après arrêt |
Lister les conteneurs
# En cours d'exécution
docker ps
# Tous (y compris arrêtés)
docker ps -a
# Uniquement les IDs
docker ps -q
Cycle de vie
docker stop mon-nginx
docker start mon-nginx
docker restart mon-nginx
docker kill mon-nginx
docker rm mon-nginx
docker rm -f mon-nginx
Nettoyer
docker container prune
docker rm -f $(docker ps -aq)
Inspecter et débugger
Logs
docker logs mon-nginx
docker logs -f mon-nginx
docker logs --tail 100 mon-nginx
Exécuter une commande
docker exec -it mon-nginx bash
docker exec mon-nginx cat /etc/nginx/nginx.conf
Inspecter
docker inspect mon-nginx
Ressources
docker stats
docker stats --no-stream
Réseaux
docker network ls
docker network create mon-reseau
docker run -d --network mon-reseau --name api nginx
docker network connect mon-reseau mon-nginx
docker network rm mon-reseau
Volumes
docker volume ls
docker volume create mes-donnees
docker volume inspect mes-donnees
docker volume rm mes-donnees
docker volume prune
Utilisation
# Volume nommé
docker run -d -v mes-donnees:/var/lib/mysql mysql:8
# Bind mount
docker run -d -v $(pwd)/app:/usr/share/nginx/html nginx
Nettoyage complet
docker system prune -a --volumes
docker system df
Exercice pratique
# 1. Lancer nginx
docker run -d -p 8080:80 --name web nginx:alpine
# 2. Vérifier
docker ps
# 3. Voir les logs
docker logs web
# 4. Ouvrir http://localhost:8080
# 5. Nettoyer
docker rm -f web
Points clés
- docker run crée ET démarre un conteneur
- docker exec exécute des commandes dans un conteneur
- Les volumes permettent de persister les données
- docker logs -f pour suivre les logs en temps réel
- docker system prune pour nettoyer l’espace disque