Les commandes Docker à connaître
Mise à jour :
Le lien vers le PDF: Cheat Sheet Docker
Docker est un outil incontournable pour gérer des conteneurs et leurs applications de manière simple et efficace. Grâce à Docker, tu peux créer, déployer et gérer des environnements isolés pour tes applications, que ce soit sur ton ordinateur ou dans le cloud. Ce guide propose un cheat sheet complet des commandes essentielles à connaître pour utiliser Docker au quotidien. Il te permettra de gérer facilement tes conteneurs, images, volumes et réseaux.
Tirer, gérer et pousser des images Docker
Les images Docker sont à la base du fonctionnement des conteneurs. Une image est une sorte de modèle qui contient tout le nécessaire pour exécuter une application (dépendances, bibliothèques, etc.). Voici les principales commandes pour télécharger, gérer, et pousser des images dans un registre distant.
Pull des images
La commande docker pull
te permet de télécharger des images depuis un
registre, tel que le Docker Hub. Par exemple, pour télécharger une image de
Nginx, tu peux utiliser cette commande :
Cela récupérera l’image la plus récente de Nginx depuis le Docker Hub. Si tu veux une version spécifique, tu peux la préciser comme ceci :
Build des images
Si tu souhaites créer ta propre image à partir d’un fichier Dockerfile,
utilise la commande docker build
. Par exemple, si ton Dockerfile se trouve
dans le répertoire courant et que tu veux nommer ton image “mon_app”, voici la
commande :
Lister les images
Pour afficher toutes les images présentes sur ta machine, utilise docker images
:
Cela te donne un aperçu des images disponibles localement, avec leur taille et la date de création.
Supprimer des images
Si tu as une image dont tu n’as plus besoin, tu peux la supprimer avec la
commande docker rmi
. Par exemple, pour supprimer l’image “mon_app” que tu as
créée précédemment :
Push des images vers un registre
Une fois ton image construite et prête à être partagée, tu peux la pousser vers un registre, tel que Docker Hub ou un registre privé. Pour cela, tu dois d’abord t’assurer que l’image est correctement taguée avec le nom du registre. Par exemple, si tu veux pousser “mon_app” vers Docker Hub sous l’utilisateur “mon_compte”, voici comment faire :
- D’abord, taguer l’image avec le nom du registre et ton compte Docker Hub :
- Ensuite, pousser l’image vers le registre avec la commande
docker push
:
Après cette commande, ton image sera disponible sur Docker Hub et tu pourras la partager ou la déployer sur d’autres machines.
Lancer et gérer les conteneurs Docker
Les conteneurs Docker sont des instances exécutées à partir d’une image. Chaque conteneur fonctionne de manière isolée, ce qui te permet de déployer et exécuter des applications indépendamment du reste de ton système. Voici les commandes clés pour lancer et gérer tes conteneurs Docker.
Lancer un conteneur
La commande docker run
est la plus couramment utilisée pour démarrer un
nouveau conteneur. Par exemple, pour lancer un conteneur Nginx, tu
utiliserais cette commande :
Cela démarrera un conteneur basé sur l’image Nginx que tu as téléchargée précédemment. Le conteneur sera lancé au premier plan, ce qui signifie que tu devras garder la fenêtre de terminal ouverte pour le maintenir en cours d’exécution.
Si tu veux que le conteneur fonctionne en arrière-plan, tu peux utiliser
l’option -d
(détaché) :
Nommer un conteneur
Pour faciliter la gestion, tu peux attribuer un nom à ton conteneur avec
l’option --name
. Par exemple, pour lancer Nginx avec le nom “mon_nginx” :
Ce nom te permettra de faire référence plus facilement au conteneur dans d’autres commandes.
Lister les conteneurs
Pour voir tous les conteneurs en cours d’exécution, utilise docker ps
:
Cela affichera les conteneurs actifs avec des informations telles que le nom,
l’ID, et l’image utilisée. Si tu veux voir tous les conteneurs, même ceux qui
sont arrêtés, ajoute l’option -a
:
Exécuter une commande dans un conteneur
Tu peux exécuter une commande dans un conteneur qui est en cours d’exécution en
utilisant docker exec
. Par exemple, pour accéder à un terminal interactif dans
ton conteneur “mon_nginx” et vérifier la configuration du serveur Nginx :
Cela te donne accès à un shell dans le conteneur pour effectuer des actions directement dedans.
Arrêter un conteneur
Si tu veux arrêter un conteneur en cours d’exécution, utilise docker stop
suivi du nom ou de l’ID du conteneur. Par exemple, pour arrêter “mon_nginx” :
Supprimer un conteneur
Si tu as un conteneur dont tu n’as plus besoin, tu peux le supprimer avec
docker rm
. Attention, le conteneur doit être arrêté avant de le supprimer. Si
tu souhaites supprimer “mon_nginx” après l’avoir arrêté, voici la commande :
Si tu veux supprimer plusieurs conteneurs à la fois, tu peux utiliser leurs noms ou ID en les séparant par des espaces, ou utiliser une commande comme celle-ci pour supprimer tous les conteneurs arrêtés :
Redémarrer un conteneur
Enfin, si tu veux redémarrer un conteneur sans le recréer, utilise docker restart
:
Cela arrête et relance le conteneur sans perdre ses données ni sa configuration.
Gérer les volumes Docker
Les volumes Docker sont utilisés pour stocker des données de manière persistante, même lorsque les conteneurs sont supprimés. Les volumes permettent de sauvegarder des données sur ton disque, ce qui est essentiel pour les applications nécessitant la persistance des informations, comme une base de données. Voici comment créer et gérer des volumes Docker.
Créer un volume
Pour créer un volume, utilise la commande docker volume create
. Par exemple,
pour créer un volume nommé “mon_volume”, tu peux utiliser cette commande :
Cela va créer un volume persistant que tu pourras monter dans un ou plusieurs conteneurs.
Utiliser un volume avec un conteneur
Pour monter un volume dans un conteneur, utilise l’option -v
ou --mount
avec
docker run
. Par exemple, si tu veux lancer un conteneur Nginx et monter
“mon_volume” dans le dossier /usr/share/nginx/html
du conteneur, voici la
commande :
Dans cet exemple, les fichiers du dossier /usr/share/nginx/html
du conteneur
seront stockés dans “mon_volume”, et les données resteront disponibles même
après la suppression du conteneur.
Lister les volumes
Pour afficher la liste des volumes existants sur ta machine, utilise la commande
docker volume ls
:
Cela te montrera tous les volumes, qu’ils soient utilisés ou non par des conteneurs.
Inspecter un volume
Pour obtenir des détails sur un volume spécifique, utilise la commande docker volume inspect
suivie du nom du volume. Par exemple, pour inspecter
“mon_volume” :
Cette commande te fournira des informations sur le volume, comme son chemin de stockage sur ton système.
Supprimer un volume
Si un volume n’est plus utilisé, tu peux le supprimer avec docker volume rm
.
Par exemple, pour supprimer “mon_volume” :
Attention, Docker ne permet pas de supprimer un volume utilisé par un conteneur actif. Il faut donc d’abord arrêter et supprimer tous les conteneurs qui utilisent ce volume.
Nettoyer les volumes inutilisés
Pour supprimer tous les volumes non utilisés par des conteneurs actifs, tu peux
utiliser la commande docker volume prune
. Cela te permet de libérer de
l’espace disque en supprimant les volumes qui ne sont plus nécessaires :
Gérer les réseaux Docker
Les réseaux Docker permettent de connecter plusieurs conteneurs entre eux et avec le monde extérieur. Docker crée automatiquement des réseaux pour que les conteneurs puissent communiquer de manière isolée ou connectée selon les besoins de ton application. Voici comment créer, gérer, et supprimer des réseaux Docker.
Créer un réseau
Pour créer un réseau personnalisé, tu peux utiliser la commande docker network create
. Par exemple, si tu veux créer un réseau nommé “mon_reseau” :
Ce réseau te permettra de connecter différents conteneurs entre eux afin qu’ils puissent communiquer plus facilement.
Utiliser un réseau avec un conteneur
Lorsque tu lances un conteneur, tu peux le connecter à un réseau spécifique à
l’aide de l’option --network
. Par exemple, pour démarrer un conteneur Nginx
sur le réseau “mon_reseau” :
Le conteneur “mon_nginx” sera désormais isolé au sein du réseau “mon_reseau”, et il pourra communiquer avec d’autres conteneurs présents sur ce même réseau.
Lister les réseaux
Pour voir tous les réseaux disponibles sur ta machine, utilise la commande
docker network ls
:
Cela te montrera les réseaux par défaut de Docker (comme bridge
, host
, et
none
) ainsi que ceux que tu as créés, comme “mon_reseau”.
Inspecter un réseau
Si tu veux obtenir des informations détaillées sur un réseau, comme les
conteneurs qui y sont connectés, utilise la commande docker network inspect
suivie du nom du réseau. Par exemple, pour inspecter “mon_reseau” :
Cela te donnera une vue détaillée sur la configuration du réseau et ses conteneurs associés.
Déconnecter un conteneur d’un réseau
Si tu veux déconnecter un conteneur d’un réseau sans l’arrêter, tu peux utiliser
docker network disconnect
. Par exemple, pour déconnecter “mon_nginx” de
“mon_reseau” :
Cela permet d’isoler un conteneur sans devoir le supprimer ou l’arrêter.
Supprimer un réseau
Une fois que tu n’as plus besoin d’un réseau, tu peux le supprimer avec docker network rm
. Par exemple, pour supprimer “mon_reseau” :
Docker ne te permettra pas de supprimer un réseau s’il y a encore des conteneurs connectés à celui-ci. Il te faudra donc d’abord arrêter ou déconnecter les conteneurs actifs.
Nettoyer les réseaux inutilisés
Pour supprimer tous les réseaux qui ne sont pas utilisés par des conteneurs
actifs, utilise la commande docker network prune
:
Cela te permet de faire du nettoyage en supprimant les réseaux superflus qui ne sont plus utilisés.
Nettoyer les ressources inutilisées avec Docker prune
Avec le temps, Docker accumule des ressources inutilisées, telles que des
conteneurs arrêtés, des images non utilisées, des volumes orphelins, et des
réseaux non utilisés. Pour éviter de surcharger ton système avec ces fichiers
inutiles, Docker offre une série de commandes prune
pour effectuer un
nettoyage rapide et efficace.
La commande la plus générale pour nettoyer toutes les ressources inutilisées est
docker system prune
. Elle supprime :
- Les conteneurs arrêtés
- Les images non utilisées par des conteneurs actifs
- Les volumes non montés dans des conteneurs
- Les réseaux inutilisés
Voici comment l’utiliser :
Docker te demandera une confirmation avant de supprimer les ressources inutilisées. Une fois la commande exécutée, tu gagneras de l’espace disque en supprimant tous ces éléments superflus.
Si tu veux spécifiquement supprimer les images non utilisées, tu peux
utiliser l’option -a
avec docker system prune
. Cela supprimera toutes les
images qui ne sont pas utilisées par un conteneur actif, même celles qui sont
encore présentes localement.
Cette commande est utile si tu souhaites faire un nettoyage en profondeur et supprimer toutes les anciennes versions d’images qui ne sont plus nécessaires.
Voici une version plus détaillée de la commande docker events
au format
Markdown, avec quelques explications supplémentaires pour mieux comprendre son
usage :
Surveillance des Événements Docker
La commande docker events
permet de surveiller en temps réel tous les
événements qui se produisent dans Docker. Cela inclut les événements liés aux
conteneurs, aux images, aux volumes et aux réseaux. C’est un outil très utile
pour le diagnostic et le suivi des activités de votre environnement Docker.
Utilisation de la commande
Exemple de sortie
Lors de l’exécution de la commande, vous verrez des événements en temps réel comme ceux-ci :
Options courantes
Vous pouvez filtrer les événements pour ne voir que ceux qui vous intéressent, en utilisant des options telles que :
-
Filtrer par type d’objet :
Par exemple, pour ne voir que les événements liés aux conteneurs :
-
Filtrer par action spécifique :
Si vous ne souhaitez voir que les événements de démarrage de conteneurs :
-
Filtrer par nom d’image ou de conteneur :
Par exemple, pour ne voir que les événements liés à une image spécifique comme
nginx
:
Applications pratiques
- Débogage : Vous pouvez utiliser cette commande pour observer ce qui se passe lorsqu’un conteneur ne démarre pas correctement ou pour détecter des erreurs dans les volumes ou les réseaux.
- Surveillance : Elle est utile pour suivre l’activité des conteneurs dans un environnement de production afin de voir quels conteneurs démarrent ou s’arrêtent, ainsi que les modifications d’images.
- Audit : Vous pouvez surveiller les événements sur une période donnée pour obtenir un historique des actions qui ont été effectuées dans Docker.
Commandes avancées
- Surveiller un événement spécifique à un intervalle précis : Si vous
souhaitez observer les événements d’une période donnée, utilisez l’option
--since
:
Cette commande vous permettra de surveiller Docker de manière efficace et de mieux comprendre ce qui se passe sous le capot de votre infrastructure de conteneurs.
Conclusion
Avec ces connaissances et astuces, tu es désormais mieux équipé pour gérer tes conteneurs Docker de manière efficace et fluide.
Pour Aller Plus Loin avec Docker
J’ai compilé les meilleures pratiques et guides issus de mon site pour vous accompagner pas à pas, du débutant à l’expert.
Installation et Configuration correcte de Docker
Une configuration correcte est essentielle pour la sécurité et les performances de Docker. Dans ce guide, vous trouverez mes principales recommandations pour installer Docker :
- Créez une partition dédiée pour Docker
- Désactivez les privilèges inutiles
- Activez des options comme le Live Restore pour éviter les interruptions de service.
- …
Vous débutez sur Docker ?
Ce premier guide couvre tout ce que vous devez savoir pour démarrer :
- Les concepts de base de Docker : images et conteneurs
- Pourquoi Docker est un outil indispensable pour le développement moderne
- Les avantages de Docker en termes de portabilité, isolation et efficacité
- Comment Docker s’intègre dans les pratiques DevOps pour automatiser les déploiements
- Les commandes de base de la CLI Docker …
Écrire des Dockerfiles aux petits oignons
Un Dockerfile optimisé réduit la taille de vos images et accélère leur déploiement. Par exemple :
- Utilisez l’instruction
COPY
au lieu deADD
pour une transparence accrue - Limitez le nombre de couches en combinant les commandes
RUN
. - …
Ecrire correctement des Dockerfiles
Optimisation des images Docker
Réduisez la taille de vos images en utilisant :
- L’option
--no-install-recommends
dans le gestionnaire de packages de l’OS - Un fichier
.dockerignore
pour exclure les fichiers non nécessaires. - En nettoyant aussi les caches pour maintenir vos images légères …
Optimisation de la taille des images
Sécurisation des secrets dans Docker
Protéger vos secrets (comme des clés API, des mots de passe) dans Docker est essentiel. Découvrez comment utiliser les fonctionnalités intégrées pour gérer les secrets de manière sécurisée dans vos environnements de production.