Référence Docker

Certains paramètres fréquents des commandes Docker

Sommaire

Voici une fiche de référence Docker couvrant les commandes les plus importantes et les concepts, de l’installation à l’exécution des conteneurs et au nettoyage :

docker logo

Ce guide fait partie de Outils de développement : Le guide complet des workflows de développement modernes.

Installation

Pour un guide complet sur l’installation de Docker sur Ubuntu — comparant le dépôt APT officiel, docker.io, Snap, le mode sans privilèges root (rootless) et la configuration du plugin Compose — consultez Installer Docker sur Ubuntu.

Après l’installation, ajoutez votre utilisateur au groupe docker si vous devez exécuter des commandes sans sudo :

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

Le guide d’installation couvre également le compromis de sécurité lié à l’appartenance au groupe docker et les alternatives rootless.

Commandes Docker générales

Version et informations système

docker version          # Affiche les versions de Docker CLI et du daemon
docker system info      # Liste les données de votre environnement Docker
docker help             # Affiche l'index d'aide
docker <commande> --help # Affiche les informations d'aide pour une commande spécifique

Connexion et déconnexion

docker login            # Se connecter à Docker Hub
docker logout           # Se déconnecter de Docker Hub

Gestion des images

Lister les images

docker images           # Lister toutes les images
docker images -a        # Lister toutes les images, y compris les images intermédiaires

Tirer des images (Pull)

docker pull <nom-image:version> # Télécharger une image depuis Docker Hub

Construire des images

docker build -t <nom-image> . # Construire une image à partir du Dockerfile du répertoire courant
docker build -f <chemin-Dockerfile> -t <nom-image> . # Construire une image à partir d'un Dockerfile spécifique
docker build --build-arg foo=bar . # Construire une image avec des arguments de construction
docker build --pull . # Tirer les versions mises à jour des images référencées dans les instructions FROM
docker build --quiet . # Construire une image sans émettre de sortie

Étiqueter et pousser des images

docker tag <nom-image-locale> <nom-utilisateur>/<nom-image-préférentiel>
docker push <nom-utilisateur>/<nom-image-préférentiel>

Supprimer des images

docker rmi <nom-image>        # Supprimer une image spécifique
docker image prune             # Supprimer les images inutilisées
docker image prune -a          # Supprimer toutes les images inutilisées

Supprimer les images orphelines (dangling)

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Désétiqueter une image

docker rmi repository/nom-image:tag

Gestion des conteneurs

Exécuter des conteneurs

docker run -itd --name <nom-conteneur> <nom-image> # Exécuter un conteneur en mode détaché
docker run -it -p <port-hôte>:<port-docker> <nom-image> # Exécuter un conteneur avec mappage de ports
docker run -it --name <nom-conteneur> <nom-image> # Exécuter un conteneur de manière interactive

Lister les conteneurs

docker ps                  # Lister les conteneurs en cours d'exécution
docker ps -a               # Lister tous les conteneurs
docker ps -s               # Lister les conteneurs en cours d'exécution avec l'utilisation CPU et mémoire

Démarrer, arrêter et redémarrer des conteneurs

docker start <nom-conteneur>   # Démarrer un conteneur arrêté
docker stop <nom-conteneur>    # Arrêter un conteneur en cours d'exécution
docker restart <nom-conteneur> # Redémarrer un conteneur

Supprimer des conteneurs

docker rm <nom-conteneur>      # Supprimer un conteneur arrêté
docker rm -f <nom-conteneur>   # Supprimer un conteneur par force
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Supprimer tous les conteneurs

Supprimer tous les conteneurs arrêtés

docker container prune

Se connecter aux conteneurs

docker attach <nom-conteneur>  # Se connecter à un conteneur en cours d'exécution
docker exec -it <nom-conteneur> bash # Exécuter une commande dans un conteneur en cours d'exécution de manière interactive

Inspecter les conteneurs

docker inspect <nom-conteneur> # Inspecter un conteneur
docker logs <nom-conteneur>    # Voir les journaux d'un conteneur
docker port <nom-conteneur>    # Afficher les mappages de ports d'un conteneur

Gestion des réseaux

docker network ls            # Lister tous les réseaux
docker network create <nom-réseau> # Créer un nouveau réseau
docker network rm <nom-réseau>    # Supprimer un réseau

Gestion des volumes

docker volume ls             # Lister tous les volumes
docker volume create <nom-volume> # Créer un nouveau volume
docker volume rm <nom-volume>    # Supprimer un volume
docker run -v <chemin-hôte>:<chemin-conteneur> <nom-image> # Monter un volume

Docker Compose

Pour les stacks multi-conteneurs et les commandes Compose quotidiennes, consultez la Fiche de référence Docker Compose. Lorsqu’un projet Compose doit démarrer au démarrage et survivre aux redémarrages sur un serveur Linux, Exécuter Docker Compose comme un service Linux avec systemd couvre les fichiers d’unité et les habitudes opérationnelles.

Commandes de base

docker-compose up           # Démarrer les services définis dans docker-compose.yml
docker-compose up -d        # Démarrer les services en mode détaché
docker-compose down         # Arrêter et supprimer les services
docker-compose ps           # Lister les services en cours d'exécution
docker-compose logs         # Voir les journaux des services
docker-compose start        # Démarrer les services
docker-compose stop         # Arrêter les services
docker-compose pause        # Mettre en pause les services
docker-compose unpause      # Reprendre les services

Commandes Dockerfile

Construire une image depuis un Dockerfile

docker build -t <nom-image> <chemin-Dockerfile> # Construire une image depuis un Dockerfile

Exemple de Dockerfile

FROM <image-de-base>
RUN <commande>
COPY <source> <destination>
EXPOSE <port>
CMD ["<commande>", "<argument>"]

Sécurité et Secrets

Secrets Docker

docker secret create <nom-secret> <fichier> # Créer un secret
docker secret ls                         # Lister tous les secrets
docker secret rm <nom-secret>          # Supprimer un secret

Sécurité Docker

  • Utilisez les secrets Docker pour gérer centralement les données sensibles et les transmettre en toute sécurité aux conteneurs.
  • Les secrets sont chiffrés pendant le transit et au repos dans un swarm Docker.

Nettoyage

Supprimer les ressources inutilisées

docker system prune          # Supprimer les données inutilisées (images, conteneurs, réseaux, volumes)
docker image prune           # Supprimer les images inutilisées
docker container prune       # Supprimer les conteneurs inutilisés
docker network prune         # Supprimer les réseaux inutilisés
docker volume prune          # Supprimer les volumes inutilisés

Supprimer les images non étiquetées

Parfois, après une grande compilation réussie, on obtient un résultat comme celui-ci de la commande docker images :

lot of untagged images

Pour supprimer ces images avec des balises :

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

Ceci est ancien et incompatible. Le paramètre dangling=true est obsolète. Utilisez :

docker system prune

Il vous demandera :

ATTENTION ! Cela supprimera :
	- tous les conteneurs arrêtés
	- tous les volumes non utilisés par au moins un conteneur
	- tous les réseaux non utilisés par au moins un conteneur
	- toutes les images orphelines

Vous pouvez décider de répondre Oui à cet avertissement…

Cette fiche de référence couvre les commandes et concepts essentiels nécessaires pour gérer les conteneurs, images, réseaux, volumes Docker et plus encore. Pour une analyse plus approfondie, consultez les guides et tutoriels détaillés disponibles en ligne.

Liens utiles

S'abonner

Recevez de nouveaux articles sur les systèmes, l'infrastructure et l'ingénierie IA.