Accéder au contenu principal

Exécutez une image Docker en tant que conteneur : Guide pratique du débutant

Ce tutoriel vous apprend à exécuter en toute confiance des images Docker à l'aide de docker run, à l'aide d'exemples clairs, d'astuces pratiques et de conseils de dépannage.
Actualisé 6 juin 2025  · 9 min de lecture

Si vous vous demandez comment exécuter une image Docker, vous n'êtes pas seul. Que vous tiriez une image de Docker Hub ou que vous en construisiez une vous-même, l'exécuter est l'étape clé qui donne vie à votre application.

Ce tutoriel est votre guide pour débutants sur la commande docker run et au-delà. Vous apprendrez :

  • Ce que sont les images et les conteneurs Docker.
  • Comment exécuter une image en utilisant différentes options.
  • Et comment arrêter, supprimer et dépanner les conteneurs comme un pro.

À la fin, vous serez en mesure de lancer vos propres conteneurs et de comprendre exactement ce qui se passe sous le capot.

Comprendre les images et les conteneurs Docker

Avant d'aborder les exemples de commandes, nous allons comprendre les images et les conteneurs Docker en termes simples.

Si ces termes vous sont déjà familiers, n'hésitez pas à passer à la section suivante !

Qu'est-ce qu'une image Docker ?

Une image Docker est un modèle immuable pour votre application. Il définit tout ce dont votre conteneur a besoin : le code, les bibliothèques, l'environnement et les configurations. Une fois que vous avez une image, vous pouvez l'utiliser pour démarrer un conteneur ou une centaine. Il reste constant à chaque fois.

D'où viennent les images ? Dockerfile les construit. Un fichier Docker est l'endroit où vous définissez l'image de base à utiliser, les dépendances à installer et la façon dont votre application doit s'exécuter.

Une fois que votre fichier Docker est prêt, vous exécutez la commande docker build. Cette commande suit les étapes du fichier et les transforme en une image réutilisable.

Qu'est-ce qu'un conteneur Docker ?

Un conteneur Docker est la version active d'une image Docker. Il permet à votre application de fonctionner dans son propre environnement isolé, garantissant un comportement cohérent quel que soit le système hôte. 

Il suit l'approche "construire une fois, exécuter n'importe où", de sorte que vous n'avez pas à configurer manuellement l'environnement à chaque fois. 

Image ou conteneur

Le tableau suivant compare une image et un conteneur côte à côte :

Image

Conteneur 

Une image est un paquet standardisé qui comprend tous les fichiers, les binaires, les bibliothèques et les configurations nécessaires à l'exécution d'un conteneur.

Une instance d'exécution d'une image.

Une image est immuable. Cela signifie qu'il ne peut pas changer tant qu'il n'est pas reconstruit.

Le conteneur est mutable. Vous pouvez le modifier pendant qu'il fonctionne, installer de nouveaux paquets ou modifier les fichiers de configuration.

Un fichier Docker (un ensemble d'instructions pour construire une image) crée une image.

Une image crée un conteneur.

Votre ordinateur stocke des fichiers images.

Un conteneur fonctionne dans votre mémoire.

Si vous êtes novice en matière de conteneurisation, notre cours Introduction à Docker vous permet de découvrir les concepts de base à l'aide d'exemples pratiques.

La commande docker run

Lorsque vous exécutez la commande docker run, vous demandez à Docker de créer un nouveau conteneur à partir d'une image.

En clair, vous lancez un programme dans un environnement isolé. Ce programme peut être n'importe quoi, une simple application web ou un service complet avec plusieurs processus. 

Syntaxe de base

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  • [OPTIONS] - Drapeaux supplémentaires pour personnaliser le fonctionnement du conteneur
  • IMAGE - Le nom de l'image Docker 
  • [COMMAND] - (Facultatif) Remplace la commande par défaut dans l'image.
  • [ARG...]- (Facultatif) Arguments.

Options et drapeaux communs

  • -d: Mode détaché : exécution des conteneurs en arrière-plan
  • -p: Mappage des ports : Pour accéder à un service (comme une API ou une application web) à partir de votre navigateur, vous devez exposer un port. Exemple : -p 3000:3000 fait correspondre le port 3000 de votre machine au port 3000 du conteneur.
  • --name: Docker donne au conteneur un nom par défaut, mais vous pouvez utiliser ce drapeau pour lui donner un nouveau nom.
  • -v:  Vous l'utilisez pour séparer les données du conteneur lui-même, afin qu'elles soient conservées même si le conteneur est arrêté ou supprimé.
  • --rm: Lorsque le conteneur s'arrête, cet indicateur le supprime automatiquement.
  • -e: Utilisez-le pour transmettre des mots de passe de base de données ou des clés d'API sans les coder en dur dans votre application.

Exécution de conteneurs interactifs ou détachés

Docker exécute les conteneurs de deux manières : le mode interactif (-it) et le mode détachement (-d). Chaque mode a des cas d'utilisation spécifiques en fonction de vos objectifs. 

  • -it: Mode interactif : Si vous souhaitez travailler directement dans un conteneur à l'aide du terminal, vous pouvez utiliser le drapeau -it. Il met le conteneur en mode interactif, ce qui vous permet de taper des commandes, de voir les résultats et de travailler en temps réel.
    • -i: Maintient l'entrée ouverte afin que vous puissiez taper des commandes dans le conteneur.
    • -t: Vous donne une interface de type terminal à l'intérieur du conteneur
  • -d: Mode détaché : Il exécute le conteneur en arrière-plan, ce qui permet à votre terminal de se consacrer à d'autres tâches. 

Gardez les commandes clés et les meilleures pratiques à portée de main grâce à notre aide-mémoire Docker pour la science des données.

Extraction et exécution d'images Docker

Maintenant que vous connaissez la syntaxe de la commande docker run, cette section vous montrera comment créer des images personnalisées et les exécuter.

Utilisation d'images provenant de Docker Hub

Docker Hub est une sorte de bibliothèque en ligne pour les images de conteneurs. Vous pouvez choisir des modèles prédéfinis ou télécharger le vôtre pour le partager avec d'autres. Il prend en charge les référentiels publics et privés, ce qui vous permet de partager des images ouvertement avec la communauté ou de mettre en place des contrôles d'accès pour vos équipes internes.

Exécution d'images personnalisées 

Pour exécuter une image Docker, vous devez d'abord la construire à l'aide d'un fichier Docker. Ensuite, vous pouvez l'exécuter localement ou le pousser vers le Docker Hub pour le partager. 

Commençons par créer un fichier Docker. En voici un exemple :

# Use official Python base image
FROM python:3.11-slim
# Set working directory in the container
WORKDIR /app
# Copy requirements file and install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy the rest of the app code
COPY . .
EXPOSE 5000
# Set default command
CMD ["python", "app.py"]

Que signifie le fichier Docker ci-dessus ?

  • FROM python:3.11-slim: image de base avec la version 3.11 de Python
  • WORKDIR /app: Définit /app comme répertoire de travail à l'intérieur du conteneur.
  • COPY requirements.txt . : déplace toutes les dépendances de la machine locale vers le répertoire app du conteneur.
  • RUN pip install --no-cache-dir -r requirements.txt: installe les dépendances indiquées dans le fichier requirements.txt.
  • COPY . . : copie le code du répertoire de travail actuel (applications, fichiers de configuration et autres) dans le répertoire app du conteneur.
  • CMD ["python", "app.py"] : exécute app.py lors du démarrage d'un conteneur à partir de cette image.

Étape 1. Construire le fichier Docker 

Voyons ce qui se passe lorsque vous construisez ce fichier Docker.

  • Exécutez la commande suivante :
docker build -t my-python-app .

Note : Pour que cette commande fonctionne, vous devez d'abord avoir configuré Docker dans votre système ; ce guide vous aide à le faire.

Image montrant les résultats de l'exécution de docker build -t my-python-app dans le terminal.

Voici ce qui se passe en coulisses lorsque vous exécutez la commande de construction :

  1. Docker lit le fichier Dockerfile
  2. L'image de base de Python est extraite de Docker Hub.
  3. Le répertoire de travail est fixé à /app.
  4. Le site requirements.txt est copié dans le conteneur.
  5. Les dépendances sont installées à l'aide de pip install.
  6. Le reste de votre code est copié dans /app.
  7. L'image finale est étiquetée my-python-app.

Étape 2 : Exécutez le fichier Docker

Une fois que votre image est construite, vous pouvez l'exécuter en utilisant :

docker run -p 5000:5000 my-python-app

Voici ce qui se passe lorsque vous l'exécutez : 

  • Un nouveau conteneur de votre image personnalisée, my-python-app, est créé.
  • Le port 5000 de votre machine est mappé au port 5000 du conteneur (-p 5000:5000).
  • Le fichier CMD ["python", "app.py"] est lancé et exécute l'application.
  • Le conteneur fonctionne en arrière-plan grâce à l'option -d (mode détaché).

À ce stade, vous pouvez visiter http://localhost:5000 dans votre navigateur et vous verrez quelque chose comme ce qui suit, ce qui signifie que votre application est en cours d'exécution :

Capture d'écran d'un navigateur à l'adresse http://localhost:5000 affichant un message "Hello from Docker !".

Si vous travaillez dans le domaine de l'apprentissage automatique, ces meilleures images Docker pour le ML et l'IA peuventaccélérer la configuration de votre environnement.

Exécution d'images avec configuration

Pour certaines applications, vous pouvez avoir besoin d'exécuter des images avec une configuration spécifique. Voici deux exemples courants.

Persistance des données

Les conteneurs stockent temporairement des données. Lorsque vous les supprimez, les données disparaissent. Un volume est un moyen de stocker des données en dehors du conteneur afin qu'elles persistent même si le conteneur est supprimé ou redémarré.

Pour monter un volume, vous devez exécuter une commande telle que la suivante :

docker run -v my-volume:/app/data my-image

Les données écrites sur /app/data sont sauvegardées dans le volume même après le retrait du conteneur.

Transmission de variables d'environnement

Les variables d'environnement transmettent les paramètres de configuration à un conteneur Docker au moment de l'exécution. Cela permet de personnaliser vos conteneurs Docker sans modifier vos images Docker. 

Vous avez deux possibilités pour transmettre des variables d'environnement : 

  1. Vous pouvez transmettre des variables d'environnement à l'aide du paramètre -e. Voici un exemple de commande :
docker run -e ENV=production -e DEBUG=False my-image
  1. Vous pouvez créer un fichier .env avec toutes les variables d'environnement et le transmettre à la commande. En voici un exemple :
docker run --env-file .env my-image

Exemple de fichier .env:

ENV=staging
DEBUG=True
SECRET_KEY=mysecret

Gestion des conteneurs en cours d'exécution

Une fois qu'un conteneur est en cours d'exécution, vous pouvez le visualiser, l'arrêter et y accéder. Voyons comment procéder.

Visualisation des conteneurs actifs

Pour répertorier tous les conteneurs Docker actifs sur votre système, exécutez la commande docker ps ou docker container ls. Cette commande affiche l'ID du conteneur, l'image, la commande, le port, l'état et d'autres détails.

docker ps
# or
docker container ls

Pour inclure tous les conteneurs, et pas seulement ceux qui sont en cours d'exécution, comme ceux qui se sont éteints ou qui ont été créés mais pas démarrés, utilisez l'option -a:

docker ps -a

Pour afficher uniquement le dernier conteneur créé, utilisez l' option -l (last) :

docker ps -l

Si vous voulez voir tous les conteneurs triés par heure de création, les plus récents étant listés en premier, exécutez :

docker ps -a --sort=created

Arrêt et retrait des conteneurs

Pour arrêter un conteneur spécifique en cours d'exécution, utilisez la commande docker stop suivie de l'ID ou du nom du conteneur :

docker stop <container_id_or_name>

Pour arrêter tous les conteneurs en cours d'exécution, utilisez

docker stop $(docker ps -q)
  • $(docker ps -q) renvoie une liste de tous les ID de conteneurs en cours d'exécution.

Une fois qu'un conteneur est arrêté, vous pouvez le retirer à l'aide de la fonction :

docker rm <container_id_or_name>

Pour supprimer tous les conteneurs arrêtés, exécutez :

docker container prune

Pour aller plus loin et supprimer les conteneurs, volumes, réseaux et images inutilisés, consultez le guide Docker prune.

Accès aux journaux des conteneurs et au shell

  • docker logs - La commande docker logs récupère par lots les journaux présents au moment de l'exécution.
  • docker exec - docker exec vous permet d'exécuter une nouvelle commande à l'intérieur d'un conteneur en cours d'exécution sans l'arrêter ou le redémarrer. C'est un peu comme si vous ouvriez un nouveau terminal dans votre conteneur, ce qui vous permet de fouiller, d'exécuter des scripts, de vérifier les journaux ou de déboguer.
  • docker attach - docker attach connecte votre terminal directement au processus principal d'un conteneur en cours d'exécution. Cela signifie que vous pouvez voir la sortie en direct du conteneur (journaux, invites, etc.) et même interagir avec lui si le processus accepte des entrées.

Dépannage des problèmes courants

Des solutions simples à des problèmes courants. Voici quelques erreurs courantes lors de l'exécution d'images Docker et la manière dont vous pouvez les résoudre. 

Erreur 1 : "Réponse d'erreur du démon : pull access denied for alpine-python, repository does not exist or may require 'docker login' : denied : requested access to the resource is denied."

  • Ce que cela signifie : Docker a essayé d'extraire une image, dans ce cas l' image alpine-python de Docker Hub, mais l'image n'existe pas ou est privée, et vous n'êtes pas authentifié.
  • Comment résoudre le problème :
    • Vérifiez le nom et la balise de l'image sur Docker Hub.
    • S'il s'agit d'une image privée, lancez docker login pour vous authentifier.
    • Assurez-vous que l'image existe si vous utilisez un registre personnalisé.

Erreur 2 : "Aucune image n'a été trouvée : <nom de l'image>:<tag>"

  • Ce que cela signifie : Vous avez tenté d'exécuter ou de marquer une image localement, mais l'image (ou la marque spécifiée) n'est pas disponible sur votre système.
  • Comment résoudre le problème :
    • Utilisez docker images pourvérifier les images disponibles.
    • Tirez l'image de manière explicite :
docker pull <image-name>:<tag>

Erreur 3 : "manifest for <image>:<tag> not found : manifest unknown : Le manifeste nommé n'est pas connu du registre".

  • Ce que cela signifie : Cette erreur se produit probablement lorsque l'image ou la balise spécifiée n'existe pas.
  • Corrections possibles : Ces conseils devraient permettre de résoudre la plupart des erreurs courantes : 
    • Vérifiez que l'image et le nom de la balise sont corrects.
    • Reportez-vous aux les tags de l'image sur Docker Hub ou votre registre personnalisé.
    • Utilisez docker pull : pour obtenir une version valide.
    • Si vous construisez localement, utilisez une adresse Dockerfile correcte et construisez l'image avec :
docker build -t <image>:<tag> .

Conflits de ports et échecs de liaison

Les conflits de port se produisent lorsque plusieurs conteneurs ou un conteneur et une autre application tentent d'accéder au même port.

  • Comment résoudre le problème :
    • Utilisez un port hôte différent lorsque vous exécutez votre conteneur :
docker run -p 8081:80 <image>
  • Arrêtez le service qui utilise actuellement le port.
  • Identifiez ce qui utilise un port (par exemple, 8080) avec :
lsof -i :8080

Conclusion 

L'exécution d'une image Docker est l'une des étapes les plus importantes de l'utilisation des conteneurs, qu'il s'agisse d'un simple serveur web ou du déploiement d'une application complexe. Avec seulement quelques commandes comme docker run, docker ps, et docker stop, vous êtes maintenant équipé pour lancer, gérer et dépanner des conteneurs en toute confiance.

Si vous êtes prêt à aller plus loin, essayez de construire votre propre image avec un fichier Docker, explorez les drapeaux avancés de docker run ou apprenez à gérer plusieurs conteneurs avec Docker Compose.

Consultez ces cours pour poursuivre votre voyage sur Docker :

Maîtriser Docker et Kubernetes

Apprenez la puissance de Docker et Kubernetes avec un cursus interactif pour construire et déployer des applications dans des environnements modernes.
Démarrer le cursus gratuitement

FAQ

Puis-je exécuter plusieurs conteneurs à partir de la même image Docker ?

Oui, vous pouvez faire fonctionner plusieurs conteneurs à partir de la même image. Chaque conteneur est isolé et peut avoir ses propres paramètres, ports et variables d'environnement.

Comment transmettre des secrets ou des clés d'API en toute sécurité à un conteneur Docker ?

Utilisez l'option -e pour définir des variables d'environnement ou utilisez un fichier .env et --env-file pour transmettre des secrets au moment de l'exécution sans les coder en dur.

Comment exécuter une image Docker en arrière-plan ?

Utilisez l'option -d avec docker run pour démarrer le conteneur en mode détaché, ce qui permet au terminal de rester disponible pour d'autres commandes.

Quelle est la différence entre docker exec et docker attach ?

 docker exec ouvre une nouvelle session shell à l'intérieur du conteneur, tandis que docker attach se connecte au processus principal du conteneur et à sa sortie en direct.

Pourquoi le message "pull access denied" apparaît-il lors de l'exécution d'une image ?

Cela signifie généralement que l'image est privée ou mal orthographiée. Vérifiez le nom, l'étiquette et assurez-vous que vous êtes connecté à Docker Hub avec docker login.

Comment maintenir les données dans un conteneur après son arrêt ?

Utilisez l'option -v pour monter un volume, ce qui garantit que les données sont stockées en dehors du conteneur et qu'elles restent intactes même après le retrait du conteneur.

Quelle est la meilleure façon de faire fonctionner un conteneur à des fins de développement ?

Utilisez les drapeaux -it pour le mode interactif, ainsi que le montage de volumes et les variables d'environnement pour simuler un environnement de développement local.

Comment puis-je savoir quels ports sont en conflit sur mon ordinateur ?

Utilisez lsof -i : pour identifier le processus qui utilise un port spécifique, puis arrêtez-le ou utilisez un port hôte différent pour votre conteneur.

Comment afficher les journaux d'un conteneur Docker en cours d'exécution ?

Utilisez la commande docker logs pour récupérer et consulter les journaux des flux de sortie et d'erreur standard du conteneur.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana est rédactrice technique indépendante et titulaire d'un diplôme de quatre ans en informatique. Écrire sur divers sujets, notamment la science des données, l'informatique en nuage, le développement, la programmation, la sécurité et bien d'autres encore, est pour elle une évidence. Elle aime la littérature classique et la découverte de nouvelles destinations.

Sujets

Apprenez-en plus sur Docker avec ces cours !

Cursus

Containerization and Virtualization with Docker and Kubernetes

0 min
Learn the power of Docker and Kubernetes, this interactive track will allow you to build and deploy applications in modern environments.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow