⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Qu'est-ce qu'un conteneur ?

Explication

Imaginez que vous développez une super application web qui a trois composants principaux : une interface React, une API Python et une base de données PostgreSQL. Si vous vouliez travailler sur ce projet, vous devriez installer Node, Python et PostgreSQL.

Comment vous assurez-vous d'avoir les mêmes versions que les autres développeurs de votre équipe ? Ou que votre système de CI/CD ? Ou ce qui est utilisé en production ?

Comment vous assurez-vous que la version de Python (ou de Node ou de la base de données) dont votre application a besoin n'est pas affectée par ce qui est déjà sur votre machine ? Comment gérez-vous les conflits potentiels ?

Entrez les conteneurs !

Qu'est-ce qu'un conteneur ? En termes simples, les conteneurs sont des processus isolés pour chacun des composants de votre application. Chaque composant - l'application frontend React, le moteur d'API Python et la base de données - s'exécute dans son propre environnement isolé, complètement isolé de tout le reste sur votre machine.

Voici ce qui les rend géniaux. Les conteneurs sont :

  • Autonomes. Chaque conteneur a tout ce dont il a besoin pour fonctionner sans dépendre de dépendances pré-installées sur la machine hôte.
  • Isolés. Comme les conteneurs sont exécutés de manière isolée, ils ont une influence minimale sur l'hôte et les autres conteneurs, ce qui augmente la sécurité de vos applications.
  • Indépendants. Chaque conteneur est géré indépendamment. La suppression d'un conteneur n'affectera aucun autre.
  • Portables. Les conteneurs peuvent fonctionner n'importe où ! Le conteneur qui s'exécute sur votre machine de développement fonctionnera de la même manière dans un centre de données ou n'importe où dans le cloud !

Conteneurs versus machines virtuelles (VM)

Sans entrer dans les détails, une VM est un système d'exploitation entier avec son propre noyau, ses pilotes matériels, ses programmes et ses applications. Démarrer une VM uniquement pour isoler une seule application représente une surcharge importante.

Un conteneur est simplement un processus isolé avec tous les fichiers dont il a besoin pour s'exécuter. Si vous exécutez plusieurs conteneurs, ils partagent tous le même noyau, ce qui vous permet d'exécuter plus d'applications sur moins d'infrastructure.

Utiliser les VM et les conteneurs ensemble

Assez souvent, vous verrez des conteneurs et des VM utilisés ensemble. Par exemple, dans un environnement cloud, les machines provisionnées sont généralement des VM. Cependant, au lieu de provisionner une machine pour exécuter une seule application, une VM avec un runtime de conteneur peut exécuter plusieurs applications conteneurisées, augmentant ainsi l'utilisation des ressources et réduisant les coûts.

Essayez-le

Dans cette prise en main, vous verrez comment exécuter un conteneur Docker à l'aide de l'interface graphique de Docker Desktop.

Suivez les instructions suivantes pour exécuter un conteneur.

  1. Ouvrez Docker Desktop et sélectionnez le champ Rechercher dans la barre de navigation supérieure.

  2. Spécifiez welcome-to-docker dans le champ de recherche, puis sélectionnez le bouton Pull.

    Une capture d'écran du tableau de bord de Docker Desktop montrant le résultat de la recherche pour l'image Docker welcome-to-docker
  3. Une fois l'image téléchargée avec succès, sélectionnez le bouton Exécuter.

  4. Développez les Paramètres optionnels.

  5. Dans le Nom du conteneur, spécifiez welcome-to-docker.

  6. Dans le Port de l'hôte, spécifiez 8080.

    Une capture d'écran du tableau de bord de Docker Desktop montrant la boîte de dialogue d'exécution du conteneur avec welcome-to-docker tapé comme nom du conteneur et 8080 spécifié comme numéro de port
  7. Sélectionnez Exécuter pour démarrer votre conteneur.

Félicitations ! Vous venez de lancer votre premier conteneur ! 🎉

Affichez votre conteneur

Vous pouvez afficher tous vos conteneurs en allant à la vue Conteneurs du tableau de bord de Docker Desktop.

Capture d'écran de la vue des conteneurs de l'interface graphique de Docker Desktop montrant le conteneur welcome-to-docker en cours d'exécution sur le port hôte 8080

Ce conteneur exécute un serveur web qui affiche un site web simple. Lorsque vous travaillez sur des projets plus complexes, vous exécuterez différentes parties dans différents conteneurs. Par exemple, vous pourriez exécuter un conteneur différent pour le frontend, le backend et la base de données.

Accéder à l'interface

Lorsque vous avez lancé le conteneur, vous avez exposé l'un des ports du conteneur sur votre machine. Considérez cela comme la création d'une configuration pour vous permettre de vous connecter à travers l'environnement isolé du conteneur.

Pour ce conteneur, l'interface est accessible sur le port 8080. Pour ouvrir le site web, sélectionnez le lien dans la colonne Port(s) de votre conteneur ou visitez http://localhost:8080 dans votre navigateur.

Capture d'écran de la page d'accueil provenant du conteneur en cours d'exécution

Explorez votre conteneur

Docker Desktop vous permet d'explorer et d'interagir avec différents aspects de votre conteneur. Essayez-le vous-même.

  1. Allez à la vue Conteneurs dans le tableau de bord de Docker Desktop.

  2. Sélectionnez votre conteneur.

  3. Sélectionnez l'onglet Fichiers pour explorer le système de fichiers isolé de votre conteneur.

    Capture d'écran du tableau de bord de Docker Desktop montrant les fichiers et répertoires à l'intérieur d'un conteneur en cours d'exécution

Arrêtez votre conteneur

Le conteneur docker/welcome-to-docker continue de s'exécuter jusqu'à ce que vous l'arrêtiez.

  1. Allez à la vue Conteneurs dans le tableau de bord de Docker Desktop.

  2. Localisez le conteneur que vous souhaitez arrêter.

  3. Sélectionnez l'action Arrêter dans la colonne Actions.

    Capture d'écran du tableau de bord de Docker Desktop avec le conteneur welcome sélectionné et en cours de préparation à l'arrêt

Suivez les instructions pour exécuter un conteneur à l'aide de la CLI :

  1. Ouvrez votre terminal CLI et démarrez un conteneur en utilisant la commande docker run :

    $ docker run -d -p 8080:80 docker/welcome-to-docker
    

    La sortie de cette commande est l'ID complet du conteneur.

Félicitations ! Vous venez de lancer votre premier conteneur ! 🎉

Affichez vos conteneurs en cours d'exécution

Vous pouvez vérifier si le conteneur est en cours d'exécution en utilisant la commande docker ps :

docker ps

Vous verrez une sortie comme la suivante :

 CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                      NAMES
 a1f7a4bb3a27   docker/welcome-to-docker   "/docker-entrypoint.…"   11 seconds ago   Up 11 seconds   0.0.0.0:8080->80/tcp       gracious_keldysh

Ce conteneur exécute un serveur web qui affiche un site web simple. Lorsque vous travaillez sur des projets plus complexes, vous exécuterez différentes parties dans différents conteneurs. Par exemple, un conteneur différent pour le frontend, le backend et la base de données.

Tip

La commande docker ps ne vous montrera que les conteneurs en cours d'exécution. Pour voir les conteneurs arrêtés, ajoutez l'indicateur -a pour lister tous les conteneurs : docker ps -a

Accéder à l'interface

Lorsque vous avez lancé le conteneur, vous avez exposé l'un des ports du conteneur sur votre machine. Considérez cela comme la création d'une configuration pour vous permettre de vous connecter à travers l'environnement isolé du conteneur.

Pour ce conteneur, l'interface est accessible sur le port 8080. Pour ouvrir le site web, sélectionnez le lien dans la colonne Port(s) de votre conteneur ou visitez http://localhost:8080 dans votre navigateur.

Capture d'écran de la page d'accueil du serveur web Nginx, provenant du conteneur en cours d'exécution

Arrêtez votre conteneur

Le conteneur docker/welcome-to-docker continue de s'exécuter jusqu'à ce que vous l'arrêtiez. Vous pouvez arrêter un conteneur en utilisant la commande docker stop.

  1. Exécutez docker ps pour obtenir l'ID du conteneur

  2. Fournissez l'ID ou le nom du conteneur à la commande docker stop :

    docker stop <the-container-id>
    
Tip

Lorsque vous référencez des conteneurs par ID, vous n'avez pas besoin de fournir l'ID complet. Vous devez seulement fournir une partie suffisante de l'ID pour le rendre unique. Par exemple, le conteneur précédent pourrait être arrêté en exécutant la commande suivante :

docker stop a1f

Ressources supplémentaires

Les liens suivants fournissent des conseils supplémentaires sur les conteneurs :

Prochaines étapes

Maintenant que vous avez appris les bases d'un conteneur Docker, il est temps d'en apprendre davantage sur les images Docker.