Docker : les images
Une image est un modèle en lecture seule à partir duquel les conteneurs sont créés. Les exemples utilisent des noms génériques (monapp).
Lister et rechercher
Section intitulée « Lister et rechercher »docker images # images locales (équivaut à docker image ls)docker images --filter dangling=true # images sans tag (« dangling »)docker search nginx # recherche sur Docker Hubdocker inspect nginx:alpine # détail d'une image (JSON)docker history nginx:alpine # couches de l'imageTélécharger
Section intitulée « Télécharger »docker pull nginx:alpine # télécharge une imagedocker pull ubuntu:24.04 # version précisedocker pull registre.example.com/monapp:1.0 # depuis un autre registreSans tag, Docker utilise latest. Pour des déploiements reproductibles, indiquer un tag de version précis.
Construire une image
Section intitulée « Construire une image »À partir d’un Dockerfile placé à la racine du projet :
FROM node:22-alpineWORKDIR /appCOPY package*.json ./RUN npm ci --omit=devCOPY . .EXPOSE 3000CMD ["node", "server.js"]docker build -t monapp:1.0 . # construit depuis le dossier courantdocker build -f Dockerfile.prod -t monapp:prod . # autre fichierdocker build --no-cache -t monapp:1.0 . # sans utiliser le cachedocker build --build-arg VERSION=1.2 -t monapp:1.2 . # argument de constructiondocker buildx build --platform linux/amd64,linux/arm64 -t registre.example.com/monapp:1.0 --push . # multi-architectureUn fichier .dockerignore exclut des fichiers du contexte de construction (node_modules, .git, .env), ce qui accélère le build et évite d’embarquer des secrets.
Taguer et publier
Section intitulée « Taguer et publier »docker tag monapp:1.0 registre.example.com/monapp:1.0 # ajoute un nomdocker login registre.example.comdocker push registre.example.com/monapp:1.0Convention : registre/dépôt:tag (registre.example.com/monapp:1.0).
Exporter et importer
Section intitulée « Exporter et importer »Utile pour transférer une image sans registre :
docker save -o monapp.tar monapp:1.0 # exporte une image en archivedocker load -i monapp.tar # importe l'archiveSupprimer et nettoyer
Section intitulée « Supprimer et nettoyer »| Commande | Rôle |
|---|---|
docker rmi monapp:1.0 |
Supprime une image (échoue si un conteneur l’utilise) |
docker image prune |
Supprime les images « dangling » |
docker image prune -a |
Supprime toutes les images non utilisées par un conteneur |
docker builder prune |
Vide le cache de construction |
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Référence du Dockerfile : docs.docker.com/reference/dockerfile
- Commandes : docs.docker.com/reference/cli/docker/image