Premier container
Interagir avec Docker se fait via une poignée de commandes. Les maîtriser dans le détail — options, comportements par défaut, pièges — est plus utile que de connaître superficiellement l'ensemble de la CLI.
Cycle de vie d'un container
# Lancer un container en interactif
docker run -it debian:13 bash
# Lancer en arrière-plan (detached)
docker run -d --name web nginx:alpine
# Lister les containers en cours
docker ps
# Lister tous les containers (y compris stoppés)
docker ps -a
# Stopper, démarrer, redémarrer
docker stop web
docker start web
docker restart web
# Supprimer un container stoppé
docker rm web
# Supprimer un container en cours (forcer)
docker rm -f webExécuter des commandes dans un container
# Shell interactif dans un container en cours
docker exec -it web bash
# Commande ponctuelle
docker exec web cat /etc/nginx/nginx.conf
# Avec variables d'environnement
docker exec -e DEBUG=1 web envInspecter et débugger
# Métadonnées complètes du container (JSON)
docker inspect web
# Juste l'IP
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web
# Logs (stdout/stderr du container)
docker logs web
docker logs -f web # follow en temps réel
docker logs --tail 50 web # 50 dernières lignes
docker logs --since 10m web # depuis 10 minutes
# Ressources en temps réel
docker stats web
docker stats --no-stream web # snapshot ponctuelPorts, noms, variables
# Publier un port : -p HOST:CONTAINER
docker run -d -p 8080:80 --name web nginx:alpine
# Plusieurs ports
docker run -d -p 8080:80 -p 8443:443 nginx:alpine
# Variables d'environnement
docker run -d -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=app mysql:8
# Fichier de variables
docker run -d --env-file ./app.env myapp:latest
# Volume bind mount
docker run -d -v /srv/data:/data myapp:latest
# Nettoyage automatique après arrêt
docker run --rm -it debian:13 bashGestion des images
# Lister les images locales
docker images
# Supprimer une image
docker rmi nginx:alpine
# Télécharger sans lancer
docker pull debian:13
# Nettoyer les images inutilisées
docker image prune
docker image prune -a # supprime toutes les images sans container associé