Comment configurer un environnement de développement Docker sur macOS ou Windows

DockerBeginner
Pratiquer maintenant

Introduction

Docker est devenu un outil essentiel pour les développeurs, leur permettant de créer et de gérer facilement des applications conteneurisées. Ce tutoriel vous guidera tout au long du processus de configuration d'un environnement de développement Docker sur macOS ou Windows, en vous assurant que vous disposez des outils et des connaissances nécessaires pour commencer à construire et déployer des applications basées sur Docker.

Comprendre les bases de Docker

Qu'est-ce que Docker ?

Docker est une plateforme open-source qui permet aux développeurs de construire, déployer et exécuter des applications dans un environnement cohérent et isolé appelé conteneurs. Les conteneurs regroupent une application et toutes ses dépendances, garantissant que l'application fonctionnera de manière fiable et cohérente, quel que soit l'infrastructure sous-jacente.

Conteneurs Docker

Un conteneur Docker est un package léger, autonome et exécutable qui inclut tout ce qui est nécessaire pour exécuter une application : le code, l'environnement d'exécution, les outils système et les bibliothèques. Les conteneurs sont isolés les uns des autres et du système d'exploitation hôte, fournissant un environnement cohérent et fiable pour l'exécution de l'application.

graph LR
    A[Application] --> B[Dépendances]
    B --> C[Environnement d'exécution]
    C --> D[Système d'exploitation]
    D --> E[Conteneur Docker]
    E --> F[Hôte Docker]

Images Docker

Les images Docker sont les éléments constitutifs des conteneurs. Une image est un modèle en lecture seule qui contient les instructions pour créer un conteneur Docker. Les images sont créées à l'aide d'un Dockerfile, qui est un fichier texte contenant toutes les commandes nécessaires à la construction de l'image.

Registre Docker

Le Registre Docker est un système de stockage et de distribution des images Docker. Le registre public le plus populaire est Docker Hub, qui fournit une vaste collection d'images pré-construites pour diverses applications et services.

Architecture Docker

Docker utilise une architecture client-serveur, où le client Docker communique avec le démon Docker, qui est responsable de la construction, de l'exécution et de la gestion des conteneurs Docker.

Composant Description
Client Docker L'interface utilisateur du système Docker. Il permet aux utilisateurs d'interagir avec le démon Docker.
Démon Docker Le processus en arrière-plan qui gère les conteneurs et les images Docker.
Registre Docker Un référentiel pour stocker et distribuer les images Docker.
Réseau Docker Permet aux conteneurs de communiquer entre eux et avec le monde extérieur.
Volumes Docker Fournit un moyen de persister les données générées et utilisées par les conteneurs Docker.

Installation de Docker sur macOS ou Windows

Installation de Docker sur macOS

  1. Visitez le site Docker et téléchargez Docker Desktop pour Mac.
  2. Lancez le programme d'installation et suivez les instructions à l'écran pour terminer l'installation.
  3. Une fois installé, l'icône Docker apparaîtra dans la barre de menu, indiquant que Docker est en cours d'exécution.

Installation de Docker sur Windows

  1. Visitez le site Docker et téléchargez Docker Desktop pour Windows.
  2. Lancez le programme d'installation et suivez les instructions à l'écran pour terminer l'installation.
  3. Une fois installé, l'icône Docker apparaîtra dans la zone de notification système, indiquant que Docker est en cours d'exécution.

Vérification de l'installation

Après l'installation de Docker, vous pouvez vérifier l'installation en ouvrant un terminal (macOS) ou PowerShell (Windows) et en exécutant la commande suivante :

docker version

Cela affichera la version du client Docker et du serveur Docker (démon) installés sur votre système.

Installation de Docker Compose

Docker Compose est un outil pour définir et exécuter des applications Docker multi-conteneurs. Pour installer Docker Compose :

  1. Visitez le référentiel GitHub de Docker Compose et téléchargez la dernière version de Docker Compose pour votre système d'exploitation.
  2. Rendez le fichier téléchargé exécutable en exécutant la commande suivante (pour Linux/macOS) :
    chmod +x docker-compose
    
  3. Déplacez le binaire Docker Compose dans un répertoire présent dans le chemin d'accès de votre système, tel que /usr/local/bin/ ou ~/bin/.

Vous pouvez maintenant vérifier l'installation en exécutant :

docker-compose version

Cela affichera la version de Docker Compose installée sur votre système.

Création d'environnements de développement Docker

Création d'un Dockerfile

Un Dockerfile est un fichier texte contenant toutes les commandes nécessaires à la création d'une image Docker. Voici un exemple de Dockerfile pour une application web Python simple :

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Ce Dockerfile :

  1. Démarre à partir de l'image de base python:3.9-slim.
  2. Définit le répertoire de travail à /app.
  3. Copie le fichier requirements.txt dans le répertoire de travail.
  4. Installe les dépendances Python listées dans requirements.txt.
  5. Copie le code de l'application dans le répertoire de travail.
  6. Spécifie la commande pour exécuter l'application (python app.py).

Création d'une image Docker

Pour créer une image Docker à partir du Dockerfile, exécutez la commande suivante dans le même répertoire que le Dockerfile :

docker build -t my-python-app .

Cela créera une image Docker avec l'étiquette my-python-app.

Exécution d'un conteneur Docker

Pour exécuter un conteneur Docker à partir de l'image my-python-app, utilisez la commande suivante :

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

Cela démarrera un nouveau conteneur et mappera le port 8080 de l'hôte au port 8080 dans le conteneur.

Développement avec Docker Compose

Docker Compose est un outil pour définir et exécuter des applications Docker multi-conteneurs. Voici un exemple de fichier docker-compose.yml pour une application web simple avec une base de données :

version: "3"
services:
  web:
    build: .
    ports:
      - 8080:8080
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: myapp
      POSTGRES_PASSWORD: secret
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

Ce fichier docker-compose.yml définit deux services : web et db. Le service web crée une image Docker à partir du répertoire courant et mappe le port 8080 de l'hôte au port 8080 dans le conteneur. Le service db utilise l'image officielle PostgreSQL et configure une base de données pour l'application.

Pour démarrer l'application, exécutez :

docker-compose up -d

Cela démarrera les conteneurs web et db en arrière-plan.

Résumé

En suivant ce tutoriel, vous apprendrez à installer Docker sur votre machine macOS ou Windows, à comprendre les bases de Docker et à créer un environnement de développement Docker adapté à vos besoins. Grâce à ces compétences, vous pourrez optimiser votre flux de travail de développement et profiter des avantages que Docker offre, tels que des environnements cohérents et reproductibles, un déploiement simplifié et une meilleure évolutivité.