Docker est une plateforme qui aide les développeurs à créer et à déployer des applications conteneurisées. Elle permet de résoudre les problèmes de compatibilité des systèmes d’exploitation en fournissant des environnements virtualisés légers pour gérer ces applications.

L’interface de ligne de commande (CLI) principale de Docker fournit des outils puissants aux développeurs qui travaillent avec des conteneurs. À partir de la commande de base docker, la CLI prend en charge près de 60 sous-commandes, dont la plupart acceptent un certain nombre d’arguments de ligne de commande pour effectuer différentes tâches.

Prise en main de l’interface de commande Docker

Votre environnement Docker peut être le moteur open source Docker Engine ou l’interface graphique conviviale de Docker Desktop. Le CLI sera votre interface principale dans un environnement Docker Engine, mais vous aurez également accès à l’outil de ligne de commande si vous installez Docker Desktop.

Nous pensons que même les utilisateurs de Docker Desktop se glisseront dans l’outil de ligne de commande une fois qu’ils se seront familiarisés avec au moins ces 20 commandes docker essentielles.

Commandes Docker à connaître

Entrons dans le vif du sujet et découvrons les commandes Docker avec lesquelles vous devriez être le plus familier.

1. docker system

La commande docker system permet d’inspecter et de gérer l’environnement Docker. Elle prend en charge les arguments de ligne de commande pour effectuer des tâches spécifiques liées à la gestion, notamment :

  • df montre comment vous utilisez le disque
  • prune supprime les réseaux, conteneurs, images ou volumes inutilisés
  • info affiche des informations relatives au système
  • events affiche un journal des évènements système en temps réel

Vous trouverez ci-dessous l’invite initiale après l’exécution de docker system prune.

commande docker system prune.
commande docker system prune.

2. docker context

Cette commande vous aide à naviguer et à configurer différents contextes. Dans Docker, les contextes comprennent les noms, les informations de sécurité de la couche de transport, les configurations des points de terminaison et les orchestrateurs.

Voici quelques-uns des arguments de docker context:

  • ls affiche les détails du contexte par défaut
  • inspect [CONTEXT} inspecte un contexte spécifié
  • create [CONTEXT] crée un nouveau contexte
  • use [CONTEXT] passe d’un contexte à l’autre

Vous trouverez ci-dessous un exemple de sortie de docker context ls:

Commande <code>docker context ls</code>.
Commande docker context ls.

3. docker pause et unpause

La commande docker pause gèle les processus actifs d’un conteneur. Pour l’exécuter, vous devez spécifier le nom du conteneur, comme indiqué ci-dessous :

docker pause [CONTAINER]

Vous trouverez ci-dessous un exemple de la sortie à laquelle vous pouvez vous attendre après avoir mis un conteneur en pause.

Commande docker pause.
Commande docker pause.

La commande docker unpause reprend les processus du conteneur mis en pause. Comme pour la commande précédente, vous devez spécifier le nom du conteneur, comme indiqué ci-dessous :

docker unpause [CONTAINER]

Vous trouverez ci-dessous un exemple du résultat auquel vous pouvez vous attendre après l’arrêt d’un conteneur.

Commande docker unpause.
Commande docker unpause.

4. docker rm

Cette commande supprime les conteneurs, les volumes et les réseaux. Elle permet de sélectionner le composant à supprimer en fonction de ses attributs. Par exemple, vous pouvez forcer la suppression des conteneurs en cours d’exécution ou de tous les conteneurs spécifiés :

docker rm [CONTAINER] supprime le conteneur dont le nom est spécifié. Le résultat de cette commande est présenté dans la capture d’écran ci-dessous.

Commande docker rm.
Commande docker rm.

5. docker rmi

Vous utilisez cette commande pour supprimer des images. Vous pouvez supprimer une seule image ou plusieurs images à la fois. Vous pouvez décrire l’image à supprimer en utilisant l’ID court ou l’ID long. Cette commande est importante pour garder le nœud hôte propre et efficace.

La commande de suppression d’image utilise la structure suivante :

docker rmi [IMAGE ID]

Vous trouverez ci-dessous un exemple de son résultat.

Commande docker rmi.
Commande docker rmi.

6. docker volume

Cette commande vous permet de gérer les volumes dans Docker. Vous pouvez l’utiliser pour créer, supprimer, lister et inspecter des volumes.

Voici quelques-uns des arguments de docker volume:

  • create [OPTIONAL NAME] crée un nouveau volume. Vous pouvez spécifier le nom du volume ou laisser Docker générer un nom aléatoire.
  • ls liste les volumes disponibles
  • inspect [NAME] affiche des informations détaillées sur le volume.
  • rm [NAME] supprime un volume de Docker.

Vous trouverez ci-dessous un exemple de sortie après la création d’un volume.

Commande docker volume create.
Commande docker volume create.

7. docker search

Utilisez cette commande pour rechercher des images à partir de Docker Hub, que vous pouvez ensuite exécuter en tant que conteneurs sur votre machine. Elle vous permet d’accéder aux images du registre de Docker Hub sans visiter le site web.

La commande suit la structure suivante : docker search . Vous pouvez spécifier les noms des images que vous recherchez ou créer un filtre.

Vous trouverez ci-dessous un exemple de la sortie de la requête suivante :

docker search --filter is-official=true --filter stars=500 mysql
Commande docker search.
Commande docker search.

8. docker push

La commande docker push vous permet de partager vos images dans le registre Docker Hub ou dans un dépôt privé.

La structure de la commande est la suivante :

docker push [OPTIONS] NAME[:TAG]

[OPTIONS] vous permet de définir -disable-content-trust.

Par défaut, cette valeur est vraie, et il n’est pas obligatoire de l’inclure.

NAME[:TAG] l’utilisation du nom du registre, du dépôt et de la balise image est nécessaire.

Vous trouverez ci-dessous un exemple de la sortie de docker push.

Commande docker push.
Commande docker push.

9. docker pull

Cette commande télécharge une image Docker à partir d’un dépôt dans un registre privé ou public.

La commande fonctionne comme suit :

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Cette commande vous permet d’utiliser des images existantes au lieu d’en créer de nouvelles chaque fois que vous devez créer une application conteneurisée.

L’exemple ci-dessous montre la sortie d’une commande docker pull:

Commande docker pull.
Commande docker pull.

10. docker ps

Par défaut, cette commande affiche la liste de tous les conteneurs en cours d’exécution. Cependant, vous pouvez ajouter un drapeau pour lister les conteneurs en fonction d’attributs tels que la taille de l’utilisation du disque, les conteneurs liés et les libellés.

La commande suit la structure ci-dessous :

docker ps [OPTIONS]

Voici quelques-uns de ses arguments :

  • -a affiche une liste des conteneurs en cours d’exécution et des conteneurs terminés
  • -s affiche la taille sur disque et la taille virtuelle de chaque conteneur

Vous pouvez utiliser les deux ensemble comme suit :

docker ps -as

Vous trouverez ci-dessous un exemple de résultat de la commande docker ps.

Une partie de la sortie de la commande docker ps.
Une partie de la sortie de la commande docker ps.

11. docker tag

Utilisez cette balise pour ajouter des métadonnées, telles que la version, à votre image. Les balises sont généralement créées lorsqu’une image est construite, mais la commande docker tag vous permet d’ajouter une balise ultérieurement, créant ainsi un alias pour l’image cible.

Cette commande suit la structure suivante :

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Dans l’exemple ci-dessous, nous listons les images portant le nom « redis » Après avoir étiqueté l’image avec un numéro de version (« 2.0 »), le nouvel alias et l’image étiquetée à l’origine apparaissent dans la liste.

Commande docker tag.
Commande docker tag.

12. docker rename

Utilisez cette commande pour renommer un conteneur. Ceci est utile lorsque vous avez plusieurs conteneurs et que vous souhaitez les différencier en fonction de leur objectif.

Cette commande suit la structure suivante :

docker rename [OLD_NAME] [NEW_NAME]

Vous trouverez ci-dessous un exemple d’affichage avant et après une commande docker rename.

Commande docker rename.
Commande docker rename.

13. docker commit

Cette commande vous permet de créer de nouvelles images après avoir modifié les fichiers d’un conteneur. C’est important car cela vous permet de déboguer un conteneur à l’aide d’un shell interactif.

Cette commande suit la structure suivante :

docker commit [CONTAINER_ID] [name-of-new-image]

Vous trouverez ci-dessous un exemple et une sortie de la commande docker commit command.

Commande docker commit.
Commande docker commit.

14. docker network

Il s’agit d’une commande de gestion de réseau qui vous permet de créer des applications puissantes en connectant des services et des conteneurs.

La commande a la structure suivante :

docker network [OPTIONS]

Ses arguments sont les suivants :

  • connect pour connecter les conteneurs aux réseaux
  • create pour construire de nouveaux réseaux
  • disconnect pour déconnecter les conteneurs en cours d’exécution des réseaux
  • rm pour supprimer un ou plusieurs réseaux

Vous trouverez ci-dessous le résultat de la commande docker network create.

Commande docker network create.
Commande docker network create.

15. docker history

Cette commande donne l’historique d’une image spécifiée, vous aidant à comprendre comment elle a été créée et affichant la taille de l’image.

La commande a la structure suivante :

docker history [IMAGE]

Ci-dessous, nous voyons l’historique associé à l’image redis:latest.

Commande docker history.
Commande docker history.

16. docker update

Cette commande vous permet de mettre à jour la configuration d’un conteneur. Elle permet d’éviter que les conteneurs ne consomment trop de ressources de l’hôte Docker. Le format de la commande est le suivant :

docker update [OPTIONS] [CONTAINER]

Voici quelques-unes de ses options :

  • --restart met à jour la politique de redémarrage d’un conteneur
  • --memory fixe la limite de mémoire d’un conteneur
  • --cpus définit le nombre d’unités centrales allouées

Vous trouverez ci-dessous un exemple de sortie de la commande docker update.

Commande docker update.
Commande docker update.

17. docker plugin install

Cette commande vous permet de gérer les plugins. Elle est essentielle car elle permet d’ajouter de nouvelles fonctionnalités sans modifier les configurations de l’hôte Docker.

Les arguments de docker plugin sont les suivants :

  • create pour créer de nouveaux plugins
  • enable pour activer les plugins installés
  • install pour installer de nouveaux plugins
  • rm pour supprimer un ou plusieurs plugins
  • ls pour afficher une liste de plugins

Ci-dessous, nous utilisons docker plugin install pour ajouter un plugin à notre environnement. Ensuite, nous utilisons docker plugin ls pour afficher son statut.

Commande docker plugin ls.
Commande docker plugin ls.

18. docker container

Cette commande vous permet de gérer les conteneurs. Vous l’utilisez pour effectuer des actions telles que créer, arrêter et supprimer des conteneurs, entre autres.

Les options de docker container sont les suivantes :

  • create pour créer un conteneur
  • commit pour créer une nouvelle image après modification d’un conteneur
  • exec pour exécuter des commandes à l’intérieur d’un conteneur en cours d’exécution
  • kill pour arrêter un conteneur en cours d’exécution
  • ls pour afficher une liste de conteneurs dans un hôte Docker
  • restart pour redémarrer un conteneur
  • run pour créer un conteneur à partir d’une image et l’exécuter
  • rm pour supprimer un conteneur d’un hôte Docker

Vous trouverez ci-dessous un exemple de sortie d’une commande docker container.

Commande docker container restart.
Commande docker container restart.

19. docker logs

Cette commande récupère les journaux d’un conteneur. Elle donne un aperçu des opérations d’un conteneur, ce qui peut être essentiel lors du débogage.

Vous trouverez ci-dessous un exemple de sortie d’une commande docker logs.

Commande docker logs.
Commande docker logs.

20. docker swarm

Cette commande permet de gérer un Docker swarm (ou essaim) – un groupe de machines (virtuelles ou physiques) exécutant Docker et configurées pour travailler ensemble dans un cluster. Cette commande facilite la mise en place d’un essaim et permet de profiter de ses avantages.

Vous trouverez ci-dessous quelques-unes des options de docker swarm:

  • init pour initier un essaim
  • join pour rejoindre un essaim
  • leave pour quitter un essaim
  • update pour mettre à jour un essaim

Vous trouverez ci-dessous un exemple et un résultat de la commande docker swarm init.

Commande docker swarm init.
Commande docker swarm init.

Résumé

Docker est un outil efficace pour créer et gérer des applications conteneurisées. Les commandes faciles à comprendre de son CLI facilitent la création et la manipulation d’applications complexes.

La maîtrise des 20 commandes ci-dessus peut accélérer le développement de vos applications conteneurisées.

Chez Kinsta, de nombreux clients de l’hébergement WordPress infogéré utilisent nos outils DevKinsta basés sur Docker-Desktop pour développer et déployer leurs sites web.

Les clients du service d’hébergement d’applications de Kinsta peuvent travailler avec Docker et leur fournisseur Git préféré (Bitbucket, GitHub ou GitLab) pour le contrôle des versions du code source et le déploiement rapide d’applications conteneurisées.

Steve Bonisteel Kinsta

Steve Bonisteel est un rédacteur technique chez Kinsta qui a commencé sa carrière d'écrivain en tant que journaliste de presse écrite, chassant les ambulances et les camions de pompiers. Il couvre les technologies similaires à l'Internet depuis la fin des années 1990.