Aller au contenu

Résumé

Vous trouverez ici un résumé des commandes usuelles.

Aide

docker --help               # Liste les commandes docker
docker <commande> --help    # Affiche les options associées à <commande>

Gestion des images

Récupérer une image:

docker pull <image>[:tag] # Si le tag est omis, le tag par défaut est latest

Par exemple, avec l'image fedora version 39:

docker pull fedora:39                 # pull l'image depuis docker hub si elle existe; comportement par défaut
docker pull docker.io/fedora:39       # équivalent à ci-dessus, mais registry précisée: docker.io (dockerhub)
docker pull quay.io/fedora/fedora:39  # image équivalente mais télécharger depuis la registry quay.io/fedora

Lister les images et les supprimer:

docker image ls                       # Liste les images présentes
docker image rm <image-id>            # Supprime l'image
docker image rm <image-name>[:tag]    # Supprime l'image ou son tag si celle-ci a plusieurs tags
docker image prune -a                 # Supprime toutes les images inutilisées

Construire une image:

docker build [OPTIONS] -f <file> -t <image-name>[:<tag>] </path/file> # Construit une image à partir d'un fichier nommé <file>
docker build -t <image-name>[:<tag>] .                                # Commande équivalente lancée dans le répertoire contenant le Dockerfile (si <file>=Dockerfile, l'option -f peut être omise)
docker image tag <image source>[:<tag>] <image source>[:<other tag>]  # Ajoute un tag supplémentaire associé à  <image source>
docker image tag <image source>[:<tag>] <image target>[:<tag>]        # Tag l'image local <image source>[:<tag>] comme <image target>[:<tag>]; permet de nommer l'image différement avec le tag voulu.

Se connecter à une registry et pousser une image dessus:

docker login                            # Se connecter à la registry Docker Hub
docker login quay.io                    # Se connecter à une autre registry, ici: quay.io
docker login gitlab-registry.in2p3.fr   # Se connecter à une autre registry, ici: gitlab de l'in2p3
docker image push <image-name>[:tag]    # Pousse une image sur sur la registry

Visualiser le détail des couches (layers) d'une image:

docker image history <image-name>

Gestion des conteneurs

Lister les conteneurs:

docker container ls         # Liste les conteneurs actifs
docker ps                   # Équivalent à la commande ci-dessus
docker container ls -a      # Liste tous les conteneurs (actifs et inactifs)
docker ps -a                # Équivalent à la commande ci-dessus

Créer/lancer et gérer un conteneur:

docker create [OPTIONS] <image-name>[:tag]  # Crée un conteneur mais ne le démarre pas
docker run [OPTIONS] <image-name>[:tag]     # Crée un conteneur et le démarre; équivaut à un docker create suivi de docker start
docker start <contianer-name_or_id>         # Démarre un conteneur
docker stop <contianer-name_or_id>          # Arrête un conteneur
docker restart <contianer-name_or_id>       # Redémarre un conteneur

Lancer un conteneur avec des options les plus usuelles:

docker run -d --name mycontainer <image-name>[:tag]                        # Lance un conteneur ayant pour nom "mycontainer" en arrière plan
docker run -it --name mycontainer <image-name>[:tag]                       # Lance un conteneur ayant pour nom "mycontainer" en mode intéractif
docker run -it --rm <image-name>[:tag]                                     # Lance un conteneur en mode intéractif qui est détruit à la fin
docker run -v </path/on/host>:</path/inside/container> <image-name>[:tag]  # Lance un conteneur avec un volume (fichier ou dossier) monté depuis l'hote
docker run -p <port_on_host>:<port_inside_container> <image-name>[:tag]    # Lance un conteneur en publiant le port à l'extérieur du conteneur

Supprimer un conteneur:

docker container rm <container-name_or_id>      # Supprime le conteneur soit en donnant son nom ou son ID
docker container rm -f <container-name_or_id>   # Force la suppression d'un conteneur actif
docker kill <container-namee_or_id>             # Tue le docker

Éxecuter une commande dans un conteneur actif:

docker exec mycontainer <commande>   # Lance une commande dans le conteneur; <commande> doit existé dans le conteneur
docker exec -it mycontainer bash     # Permet d'ouvrir une session bash dans le conteneur; si bash n'est pas disponible, essayer avec sh

Lire la sortie standarde (STDOUT) et la sortie d'erreur (STDERR) d'un contneur:

docker logs <container-name_or_id>
docker logs -f <container-name_or_id> # -f (--follow) permet de suivre les logs en temps réels

Gérer le système

docker system df                    # Montre l'utilisation du disque par docker
docker system prune                 # Supprime les données inutilisées ; à utiliser avec précaution
docker image prune -a               # Supprime toutes les images inutilisées
docker rm $(docker ps -a -q)        # Supprime tous les conteneurs inutilisés
docker rm -f $(docker ps -a -q)     # Supprime TOUS les conteneurs
Authors: Cécile Cavet