Docker Cheat Sheet
docker version
docker info
docker help
docker <command> --help
Gestion des images
Lister les images
Télécharger une image
docker pull ubuntu
docker pull nginx:latest
Construire une image
docker build -t monimage:1.0 .
Supprimer une image
docker rmi IMAGE_ID
docker rmi nom_image:tag
Nettoyer les images inutilisées
docker image prune
docker image prune -a
Gestion des conteneurs
Lancer un conteneur
docker run nginx
docker run -d nginx
docker run -it ubuntu bash
Note
Options courantes :
-p 8080:80 # mapping port
-v /host:/container # volume
--name monconteneur
--rm # suppression automatique
-e VAR=value # variable d'environnement
Example
docker run -d -p 8080:80 --name web nginx
Lister les conteneurs
Stopper / démarrer un conteneur
docker stop CONTAINER
docker start CONTAINER
docker restart CONTAINER
Supprimer un conteneur
docker rm CONTAINER
docker rm -f CONTAINER
Accès aux conteneurs
Ouvrir un shell
docker exec -it CONTAINER bash
docker exec -it CONTAINER sh
Voir les logs
docker logs CONTAINER
docker logs -f CONTAINER
Inspecter un conteneur
Volumes
Lister les volumes
Créer un volume
docker volume create monvolume
Inspecter un volume
docker volume inspect monvolume
Supprimer un volume
docker volume rm monvolume
Monter un volume
docker run -v monvolume:/data nginx
Bind mount :
docker run -v $(pwd):/app ubuntu
Réseaux
Lister les réseaux
Créer un réseau
docker network create monreseau
Connecter un conteneur
docker run -d --network monreseau nginx
Inspecter
docker network inspect monreseau
Dockerfile minimal
FROM ubuntu:22.04
RUN apt update && apt install -y curl
WORKDIR /app
COPY . .
CMD ["bash"]
Build et run
docker build -t monapp .
docker run -it monapp
Docker Compose (v2)
Lancer
docker compose up
docker compose up -d
Stopper
Voir les logs
docker compose logs
docker compose logs -f
Redémarrer un service
docker compose restart SERVICE
Example
docker-compose.yml
version: "3.9"
services:
web:
image: nginx
ports:
- "8080:80"
redis:
image: redis
Nettoyage global
Supprimer tout ce qui est inutilisé
Supprimer en incluant les volumes
docker system prune -a --volumes
Debug rapide
Voir les ressources
Processus dans un conteneur
Différence filesystem
Export / Import
Sauvegarder une image
docker save -o image.tar monimage
Restaurer
Export conteneur
docker export CONTAINER > container.tar
Bonnes pratiques
- utiliser des images officielles
- limiter la taille des images
- utiliser .dockerignore
- éviter latest en production
- utiliser multi-stage build
Example
FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN go build -o app
FROM alpine
COPY --from=build /app/app /app
CMD ["/app"]