Docker Compose, Dockerfile et exemples de code

Un Dockerfile et un fichier contenant les instructions nécessaires à la création d’une image Docker, tandis que Docker Compose est une commande permettant d’exécuter un conteneur Docker. Qu’est-ce qu’un Dockerfile ? Un Dockerfile est un document texte contenant toutes les commandes dont un utilisateur a besoin pour créer une image Docker, un fichier utilisé pour exécuter […]


Un Dockerfile et un fichier contenant les instructions nécessaires à la création d’une image Docker, tandis que Docker Compose est une commande permettant d’exécuter un conteneur Docker.

Qu’est-ce qu’un Dockerfile ?

Un Dockerfile est un document texte contenant toutes les commandes dont un utilisateur a besoin pour créer une image Docker, un fichier utilisé pour exécuter le code dans un conteneur Docker. Lorsqu’un utilisateur exécute la commande « docker run » et spécifie WordPress, Docker utilise ce fichier, le Dockerfile, pour créer l’image.

Qu’est-ce que Docker Compose ?

Docker Compose est un outil permettant de définir et d’exécuter des conteneurs Docker à l’aide d’un fichier de configuration YAML, un langage de sérialisation des données lisible par l’utilisateur, généralement utilisé pour la configuration des fichiers et dans les applications qui stockent ou transmettent les données.

Dockerfile et Docker Compose : principales différences

Dockerfile et Docker Compose : présentation

Même s’ils ont été inventés par Docker et appartiennent à son univers, ce sont deux éléments distincts avec des fonctions différentes. Un Dockerfile est un document texte contenant une série de commandes nécessaires à la création d’une image Docker. Docker Compose est un outil permettant de définir et d’exécuter des applications multi-conteneurs.

Quand utiliser et comment exécuter un Dockerfile : exemple

Toute personne souhaitant créer une image Docker peut avoir recours à un Dockerfile. Pour cela, elle devra utiliser les commandes « docker build », qui s’appuient sur un « contexte », c’est-à-dire l’ensemble des fichiers situés dans l’URL ou le chemin d’accès spécifié. Le processus de création peut faire référence à n’importe quel fichier du contexte, et le paramètre URL peut renvoyer à des dépôts Git, à des contextes d’archives prépackagés ou à des fichiers texte.

D’après Docker :

« Une image Docker se compose de couches en lecture seule, chacune représentant une instruction Dockerfile. Les couches sont empilées et chacune est un delta des changements par rapport à la couche précédente. »

Dans le Dockerfile suivant :

Deep learning et réseaux neuronaux

Chaque instruction correspond à une couche :

FROM crée une couche à partir de l’image Docker ubuntu:18.04.

COPY ajoute des fichiers à partir du répertoire courant de votre client Docker.

RUN crée votre application avec make.

CMD indique la commande à exécuter dans le conteneur.

Après l’exécution d’une image et la génération d’un conteneur, une nouvelle couche inscriptible est ajoutée, la « couche de conteneur », au-dessus des couches sous-jacentes. Toutes les modifications apportées au conteneur en cours d’exécution (écriture, modification, suppression de fichiers) sont écrites dans cette couche de conteneur inscriptible.

Deep learning et réseaux neuronaux

Pour en savoir plus sur les Dockerfiles et comment les utiliser, consultez la documentation de Docker.

Quand utiliser et comment exécuter Docker Compose : exemple

Docker Compose vous permet d’exécuter des applications multi-conteneurs.

Pour cela, vous devez utiliser un fichier YAML pour configurer les services de votre application. Ensuite, avec une seule commande, vous pouvez créer et démarrer tous les services de votre configuration.

Pour utiliser Docker Compose :

  1. Utilisez un Dockerfile pour définir l’environnement de votre appli et le reproduire n’importe où.
  2. Définissez les services qui composent votre appli dans docker-compose.yml pour pouvoir les exécuter ensemble dans un environnement isolé.
  3. Utilisez docker compose up et la commande docker-compose pour démarrer et exécuter toute votre appli.

Voici un exemple de fichier docker-compose.yml :

Pour en savoir plus sur Docker Compose, consultez la documentation de Docker.

Dockerfile et Docker Compose : FAQs

Est-ce que Docker Compose peut remplacer un Dockerfile ?

Non, ils ne sont pas interchangeables. Un Dockerfile est utilisé dans le processus de création d’images Docker, qui font partie des conteneurs, tandis que Docker Compose est utilisé pour l’orchestration.

Est-ce que docker-compose et Docker Compose font référence à la même chose ?

Docker Compose est le nom d’un outil, tandis que docker-compose est le nom de la commande (c’est-à-dire le code) utilisée dans Docker Compose.

Peut-on utiliser Docker Compose en production ?

Oui. Docker Compose fonctionne dans tous les environnements : production, préproduction, développement, tests, ainsi que dans les flux d’intégration continue.

Pourquoi choisir Pure pour vos besoins en matière de conteneurisation ?

Pure propose diverses solutions qui simplifient au maximum l’utilisation et l’orchestration des conteneurs pour votre société.

Ces solutions incluent le stockage par conteneurs à la demande pour le cloud hybride, qui allie l’agilité du cloud public à la fiabilité et à la sécurité d’une infrastructure sur site, et Portworx®, la plateforme de services de données Kubernetes la plus complète.

Découvrez Pure dès aujourd’hui. Contactez-nous pour en savoir plus.