Docker comme automatisation

Skip to content

Ceci est un texte traduit automatiquement qui peut contenir des erreurs !

Docker simplifie le déploiement des applications. Au lieu d’installer et de configurer manuellement des logiciels sur un serveur, vous définissez tout dans des fichiers de configuration. Le résultat est reproductible, portable et rapide à mettre en place.

Qu’est-ce que Docker Compose ?

Avec Docker Compose, vous définissez plusieurs services dans un seul fichier (docker-compose.yml). Chaque service est un conteneur avec sa propre configuration.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"

Une commande configure tout :

docker compose up -d
# Starter tjenestene i bakgrunnen.
# Démarre les services en arrière-plan.

Avez-vous besoin de déplacer le service vers un autre serveur ? Copiez le fichier et exécutez la même commande. Tout est identique.

Pourquoi s’agit-il d’automatisation ?

Considérez la différence :

Configuration manuelle Avec Docker Compose
Installer Nginx manuellement image: nginx:latest
Configurer les ports ports: "80:80"
Installer Grafana manuellement image: grafana/grafana:latest
Documenter toutes les étapes Tout est documenté dans le fichier .yml
Répéter tout sur le prochain serveur docker compose up -d

Le fichier Docker Compose est la documentation. Il décrit exactement quels services s’exécutent, quels ports ils utilisent et comment ils sont configurés.

Commandes Docker utiles

Commande Ce qu’elle fait
docker compose up -d Démarre tous les services en arrière-plan
docker compose down Arrête et supprime tous les conteneurs
docker compose logs -f Suit les logs en temps réel
docker compose pull Récupère la dernière version de toutes les images
docker compose restart Redémarre tous les services
docker ps Affiche les conteneurs en cours d’exécution

Volumes : Stocker des données en dehors du conteneur

Les conteneurs sont temporaires. Si vous supprimez un conteneur, tout son contenu disparaît. Pour conserver les données, nous utilisons des volumes :

services:
  database:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: hemmelig # Mot de passe pour la base de données
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Voici où les fichiers de base de données sont stockés dans un volume appelé db-data. Même si vous supprimez et recréez le conteneur, les données restent là.

Mise à jour des services

Mettre à jour un service Docker est simple :

# Récupérer la dernière version
docker compose pull

# Redémarrer avec la nouvelle version
docker compose up -d

Comparez cela à la mise à jour manuelle de logiciels installés, où vous pourriez devoir télécharger, configurer et espérer que rien ne se casse.

Easy Exercice 1 - Configurer Nginx avec Docker Compose

Créez un fichier docker-compose.yml qui exécute un serveur web Nginx :

  1. Créez un nouveau dossier et créez le fichier docker-compose.yml
  2. Définissez un service avec image: nginx:latest sur le port 80
  3. Exécutez docker compose up -d
  4. Visitez http://localhost dans votre navigateur

Medium Exercice 2 - Ajouter un service

Étendez le fichier docker-compose.yml de l’exercice 1 avec un service supplémentaire. Par exemple :

Démarrez tout avec docker compose up -d et vérifiez que les deux services s’exécutent simultanément.

Résumé

  • Docker Compose vous permet de définir plusieurs services dans un seul fichier
  • Le fichier Compose est à la fois une configuration et une documentation
  • Volumes stockent les données en dehors du conteneur afin qu’elles survivent aux redémarrages
  • La mise à jour est docker compose pull + docker compose up -d
  • Docker facilite le déplacement des services entre les serveurs