Interface de commande Docker : libérer la puissance de la gestion des conteneurs

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel complet vous guidera à travers les bases de l'interface de commande Docker, vous permettant de gérer et d'automatiser efficacement vos applications basées sur Docker. Plongez dans le monde des conteneurs et des images Docker, apprenez les commandes essentielles de l'interface de commande et découvrez les meilleures pratiques pour une utilisation efficace de l'interface de commande Docker.

Introduction à Docker et à l'interface de commande Docker

Docker est une plateforme open-source populaire qui permet aux développeurs et aux professionnels de l'informatique de construire, de packager et de déployer des applications dans un environnement cohérent et reproductible. L'interface de commande Docker, également connue sous le nom d'interface de ligne de commande Docker (CLI), est un outil puissant qui permet aux utilisateurs d'interagir avec les conteneurs Docker et de gérer l'ensemble de l'écosystème Docker.

Dans cette section, nous explorerons les bases de Docker et de l'interface de commande Docker, y compris la compréhension des conteneurs et des images Docker, l'exécution de commandes à l'intérieur des conteneurs et les commandes et la syntaxe essentielles de l'interface de commande Docker.

Compréhension des conteneurs et des images Docker

Les conteneurs Docker sont des paquets logiciels légers, autonomes et exécutables qui incluent tout ce dont une application a besoin pour fonctionner, y compris le code, l'environnement d'exécution, les outils système et les bibliothèques. Les images Docker sont les modèles pour créer ces conteneurs, et elles peuvent être construites, partagées et utilisées pour déployer des applications de manière cohérente sur différents environnements.

graph TD A[Image Docker] --> B[Conteneur Docker] B --> C[Application] B --> D[Environnement d'exécution] B --> E[Outils système] B --> F[Bibliothèques]

Exécution de commandes à l'intérieur des conteneurs Docker

L'interface de commande Docker vous permet d'exécuter des commandes à l'intérieur des conteneurs Docker en cours d'exécution, ce qui vous permet d'inspecter, de dépanner et de gérer vos applications. Vous pouvez utiliser la commande docker exec pour exécuter des commandes dans un conteneur, comme illustré dans l'exemple suivant :

docker exec -it my-container /bin/bash

Cette commande démarrera une session de shell interactive à l'intérieur du conteneur my-container, vous permettant d'exécuter des commandes et d'interagir avec l'environnement du conteneur.

Comprendre les conteneurs et les images Docker

Les conteneurs Docker sont les blocs de construction fondamentaux de la plateforme Docker. Ce sont des paquets logiciels légers, autonomes et exécutables qui incluent tout ce dont une application a besoin pour fonctionner, y compris le code, l'environnement d'exécution, les outils système et les bibliothèques. Les conteneurs Docker sont créés à partir d'images Docker, qui servent de modèle ou de gabarit pour le conteneur.

Images Docker

Les images Docker sont les modèles en lecture seule utilisés pour créer des conteneurs Docker. Elles sont composées de plusieurs couches, chacune représentant une modification ou une addition spécifique à l'image. Ces couches sont mises en cache, ce qui permet une construction et un partage efficaces des images. Les images Docker peuvent être construites à l'aide d'un Dockerfile, un script texte qui définit les étapes pour créer l'image.

Voici un exemple de Dockerfile simple :

FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Ce Dockerfile crée une nouvelle image Docker basée sur la dernière image Ubuntu, installe le serveur web Nginx, copie un fichier index.html dans le répertoire racine de documents de Nginx, expose le port 80 et définit la commande par défaut pour démarrer le serveur Nginx.

Conteneurs Docker

Les conteneurs Docker sont des instances d'images Docker. Ce sont des environnements légers, isolés et portables qui exécutent des applications. Les conteneurs peuvent être créés, démarrés, arrêtés, déplacés et supprimés à l'aide des commandes de l'interface de commande Docker.

Pour créer un nouveau conteneur à partir d'une image, vous pouvez utiliser la commande docker run :

docker run -d -p 80:80 --name my-nginx nginx

Cette commande crée un nouveau conteneur nommé my-nginx à partir de l'image nginx, l'exécute en mode détaché (-d) et mappe le port 80 du conteneur au port 80 de la machine hôte (-p 80:80).

Exécution de commandes à l'intérieur des conteneurs Docker

L'une des fonctionnalités clés de l'interface de commande Docker est la possibilité d'exécuter des commandes à l'intérieur des conteneurs Docker en cours d'exécution. Cela vous permet d'inspecter, de dépanner et de gérer vos applications au sein de l'environnement isolé du conteneur.

La commande docker exec

La commande docker exec est utilisée pour exécuter des commandes à l'intérieur d'un conteneur Docker en cours d'exécution. Cette commande peut être utilisée pour démarrer une session de shell interactive, exécuter une commande spécifique ou même lancer un nouveau processus à l'intérieur du conteneur.

Voici un exemple de démarrage d'une session de shell interactive à l'intérieur d'un conteneur en cours d'exécution :

docker exec -it my-container /bin/bash

Cette commande démarrera une session Bash interactive à l'intérieur du conteneur my-container, vous permettant d'exécuter des commandes et d'interagir avec l'environnement du conteneur.

Exécution de commandes

Vous pouvez également utiliser la commande docker exec pour exécuter une commande spécifique à l'intérieur d'un conteneur en cours d'exécution. Cela est utile pour des tâches telles que l'inspection des journaux, l'exécution d'outils de diagnostic ou l'exécution de tâches administratives.

Par exemple, pour afficher les journaux d'un conteneur en cours d'exécution, vous pouvez utiliser la commande suivante :

docker exec my-container tail -n 10 /var/log/app.log

Cela affichera les 10 dernières lignes du fichier app.log à l'intérieur du conteneur my-container.

Lancement de nouveaux processus

En plus d'exécuter des commandes, la commande docker exec peut également être utilisée pour lancer de nouveaux processus à l'intérieur d'un conteneur en cours d'exécution. Cela peut être utile pour des tâches telles que l'exécution de tâches en arrière-plan, le démarrage de services supplémentaires ou la réalisation d'opérations de maintenance.

Par exemple, pour démarrer un nouveau processus Nginx à l'intérieur d'un conteneur en cours d'exécution, vous pouvez utiliser la commande suivante :

docker exec my-container nginx -g "daemon off;"

Cela démarrera un nouveau processus Nginx à l'intérieur du conteneur my-container, en mode avant-plan.

Commandes et syntaxe essentielles de l'interface de commande Docker

L'interface de commande Docker fournit un ensemble complet de commandes et de syntaxe pour gérer les conteneurs, les images Docker et l'écosystème Docker dans son ensemble. Dans cette section, nous explorerons certaines des commandes essentielles de l'interface de commande Docker et leur utilisation.

Gestion des conteneurs Docker

  • docker run : Créer et démarrer un nouveau conteneur
  • docker start/stop/restart : Démarrer, arrêter ou redémarrer un conteneur
  • docker ps : Lister les conteneurs en cours d'exécution
  • docker logs : Afficher les journaux d'un conteneur
  • docker exec : Exécuter une commande à l'intérieur d'un conteneur en cours d'exécution
  • docker rm : Supprimer un conteneur

Gestion des images Docker

  • docker build : Construire une nouvelle image à partir d'un Dockerfile
  • docker images : Lister les images disponibles
  • docker pull/push : Télécharger ou pousser une image vers un registre
  • docker rmi : Supprimer une image

Gestion des réseaux Docker

  • docker network create : Créer un nouveau réseau
  • docker network ls : Lister les réseaux disponibles
  • docker network connect/disconnect : Connecter ou déconnecter un conteneur à un réseau

Gestion des volumes Docker

  • docker volume create : Créer un nouveau volume
  • docker volume ls : Lister les volumes disponibles
  • docker volume inspect : Inspecter un volume
  • docker volume rm : Supprimer un volume

Docker Compose

Docker Compose est un outil pour définir et exécuter des applications Docker multi-conteneurs. Il utilise un fichier YAML pour configurer les services, les réseaux et les volumes de l'application.

  • docker-compose up : Démarrer l'application
  • docker-compose down : Arrêter l'application
  • docker-compose ps : Lister les services en cours d'exécution
  • docker-compose logs : Afficher les journaux de l'application

Ce ne sont là que quelques exemples des commandes et de la syntaxe essentielles de l'interface de commande Docker. La documentation Docker fournit une référence complète pour toutes les commandes disponibles et leur utilisation.

Interaction avec et gestion des conteneurs Docker

L'interface de commande Docker fournit un ensemble complet de commandes pour interagir avec et gérer les conteneurs Docker. Dans cette section, nous explorerons les différentes manières de travailler avec les conteneurs Docker à l'aide de l'interface de commande Docker.

Démarrage et arrêt des conteneurs

Pour démarrer un nouveau conteneur, vous pouvez utiliser la commande docker run :

docker run -d --name my-container nginx

Cette commande créera un nouveau conteneur basé sur l'image nginx et le démarrera en mode détaché (-d). L'option --name vous permet d'attribuer un nom personnalisé au conteneur.

Pour arrêter un conteneur en cours d'exécution, vous pouvez utiliser la commande docker stop :

docker stop my-container

Cela arrêtera proprement le conteneur my-container.

Inspection de l'état des conteneurs

Vous pouvez utiliser la commande docker ps pour lister tous les conteneurs en cours d'exécution :

docker ps

Pour afficher des informations sur un conteneur spécifique, vous pouvez utiliser la commande docker inspect :

docker inspect my-container

Cela affichera des informations détaillées sur le conteneur my-container, y compris sa configuration, ses paramètres réseau et son utilisation des ressources.

Connexion et déconnexion des conteneurs

Vous pouvez vous connecter aux flux d'entrée, de sortie et d'erreur standard d'un conteneur en cours d'exécution à l'aide de la commande docker attach :

docker attach my-container

Cela connectera votre terminal à la console du conteneur, vous permettant d'interagir avec l'application en cours d'exécution.

Pour vous déconnecter du conteneur sans l'arrêter, vous pouvez utiliser le raccourci clavier Ctrl+P Ctrl+Q.

Suppression des conteneurs

Pour supprimer un conteneur arrêté, vous pouvez utiliser la commande docker rm :

docker rm my-container

Cela supprimera le conteneur my-container de l'hôte Docker.

Journalisation des conteneurs

Vous pouvez afficher les journaux d'un conteneur en cours d'exécution à l'aide de la commande docker logs :

docker logs my-container

Cela affichera les journaux du conteneur my-container.

Scripting et automatisation avec l'interface de commande Docker

L'interface de commande Docker fournit un ensemble puissant de commandes et de syntaxe permettant de créer des scripts et d'automatiser diverses tâches liées à Docker. En combinant les commandes de l'interface de commande Docker avec des langages de script shell, vous pouvez optimiser vos flux de travail basés sur Docker et améliorer l'efficacité globale.

Scripting shell avec Docker

Vous pouvez utiliser des langages de script shell, tels que Bash ou Python, pour créer des scripts qui interagissent avec l'interface de commande Docker. Ces scripts peuvent automatiser des tâches telles que la construction et le déploiement d'images Docker, la gestion des conteneurs et l'orchestration d'applications multi-conteneurs.

Voici un exemple de script Bash qui construit une image Docker et exécute un conteneur :

#!/bin/bash

## Construire l'image Docker
docker build -t my-app .

## Exécuter le conteneur
docker run -d --name my-container my-app

Ce script construit d'abord une image Docker avec l'étiquette my-app, puis exécute un conteneur basé sur cette image avec le nom my-container.

Docker Compose pour l'automatisation

Docker Compose est un outil qui simplifie le processus de définition et d'exécution d'applications multi-conteneurs. En utilisant un fichier de configuration YAML, vous pouvez définir de manière déclarative les services, les réseaux et les volumes qui composent votre application, puis utiliser les commandes Docker Compose pour gérer l'ensemble de la pile applicative.

Voici un exemple de fichier de configuration Docker Compose simple :

version: "3"
services:
  web:
    build: .
    ports:
      - "80:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password

Ce fichier de configuration définit deux services : un service web qui construit une image à partir du répertoire courant et expose le port 80, et un service de base de données qui utilise l'image officielle MySQL 5.7 et définit le mot de passe racine.

Vous pouvez ensuite utiliser la commande docker-compose up pour démarrer l'application et la commande docker-compose down pour l'arrêter.

Intégration avec les pipelines CI/CD

L'interface de commande Docker peut être facilement intégrée aux pipelines d'intégration continue (CI) et de déploiement continu (CD), vous permettant d'automatiser l'ensemble du cycle de vie des applications basées sur Docker. Des outils CI/CD populaires tels que Jenkins, Travis CI et GitLab CI/CD peuvent être configurés pour exécuter des commandes de l'interface de commande Docker dans le cadre de leurs processus de construction et de déploiement.

En exploitant le scripting et l'automatisation avec l'interface de commande Docker, vous pouvez optimiser vos flux de travail basés sur Docker, améliorer la cohérence et accroître l'efficacité globale de vos processus de développement et de déploiement.

Meilleures pratiques pour une utilisation efficace de l'interface de commande Docker

À mesure que vous maîtrisez l'interface de commande Docker, il est important d'adopter les meilleures pratiques pour garantir une utilisation efficace et fiable. Dans cette section, nous aborderons certaines meilleures pratiques clés à garder à l'esprit lors de la manipulation de l'interface de commande Docker.

Organiser votre environnement Docker

Maintenez une structure claire et organisée pour votre environnement Docker, incluant les images, les conteneurs, les réseaux et les volumes. Utilisez des noms et des balises significatifs pour vos ressources Docker afin d'améliorer la lisibilité et la maintenabilité.

Exploiter Docker Compose

Dans la mesure du possible, utilisez Docker Compose pour définir et gérer vos applications multi-conteneurs. Cela vous aidera à maintenir un environnement cohérent et reproductible, facilitant le déploiement et le dimensionnement de vos applications.

Automatiser avec la scripture shell

Adoptez la scripture shell pour automatiser les tâches répétitives et optimiser vos flux de travail basés sur Docker. Créez des scripts pour construire, déployer et gérer vos applications Docker, garantissant la cohérence et réduisant le risque d'erreurs manuelles.

Implémenter la journalisation et la surveillance

Assurez-vous de disposer de mécanismes appropriés de journalisation et de surveillance pour vos applications Docker. Utilisez la commande docker logs pour accéder aux journaux des conteneurs, et envisagez d'intégrer des solutions de journalisation et de surveillance externes pour une vue plus complète de votre environnement Docker.

Pratiquer l'intégration et le déploiement continus

Intégrez l'interface de commande Docker dans vos pipelines d'intégration continue (CI) et de déploiement continu (CD) pour automatiser l'ensemble du cycle de vie de l'application, de la construction et des tests au déploiement et au dimensionnement.

Maintenir un environnement Docker propre

Nettoyez régulièrement les ressources Docker inutilisées, telles que les conteneurs arrêtés, les images orphelines et les réseaux et volumes inutilisés. Cela vous aidera à maintenir un environnement Docker propre et efficace, réduisant le risque d'épuisement des ressources et améliorant les performances globales du système.

Rester à jour avec la documentation Docker

Consultez régulièrement la documentation officielle Docker pour rester informé des dernières fonctionnalités, meilleures pratiques et modifications de l'écosystème Docker. Cela vous aidera à tirer le meilleur parti de l'interface de commande Docker et à vous assurer de l'utiliser efficacement.

En suivant ces meilleures pratiques, vous pouvez exploiter tout le potentiel de l'interface de commande Docker, optimiser vos flux de travail basés sur Docker et garantir la fiabilité et l'évolutivité de vos applications Docker.

Résumé

L'interface de commande Docker est un outil puissant qui vous permet d'interagir avec et de gérer les conteneurs, les images Docker et l'ensemble de l'écosystème Docker. Dans ce tutoriel, vous apprendrez à exécuter des commandes à l'intérieur des conteneurs Docker, à utiliser les commandes Shell essentielles et à explorer des techniques de script et d'automatisation de vos flux de travail basés sur Docker. À la fin de ce guide, vous aurez une compréhension solide de l'interface de commande Docker et serez équipé pour l'utiliser afin d'optimiser vos processus de développement et de déploiement basés sur Docker.