Retour aux TPs
[ COMPÉTENCE — INFRASTRUCTURE ] DOCKER

Conteneurisation

Déploiement et orchestration de services via Docker

Docker Docker Compose CLI YAML

Pourquoi Docker ?

Dans le cadre de mon apprentissage et de mes projets personnels, j'apprécie particulièrement l'utilisation de Docker. C'est un outil qui me facilite grandement la vie et me fait gagner un temps précieux lors des déploiements. Fini les conflits de dépendances ou les longues procédures d'installation : tout est packagé, prêt à être exécuté, peu importe la machine hôte.

Commandes de base & Authentification

Je suis capable d'installer le moteur Docker sur une machine Linux et de gérer son écosystème en ligne de commande (CLI).

Orchestration avec Docker Compose

Pour déployer des services nécessitant plusieurs conteneurs interconnectés (par exemple une application web et sa base de données), je sais rédiger de simples fichiers docker-compose.yml.

Voici un exemple concret de fichier que j'ai créé et que j'utilise pour déployer mon propre serveur Nextcloud avec une base de données MariaDB :

# docker-compose.yml pour Nextcloud
services:
  db:
    image: mariadb:10.6
    restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=sqlroot
      - MYSQL_PASSWORD=sqluser
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8888:80
    links:
      - db
    volumes:
      - ./data:/var/www/html
    environment:
      - MYSQL_PASSWORD=maxxedoutZ240!
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
Ce fichier YAML gère automatiquement le téléchargement des bonnes images, le mappage des ports réseau (8888 vers 80), la création de volumes persistants pour les données, et l'injection des variables d'environnement.

Exécution en arrière-plan

Une fois mon fichier YAML configuré, je maîtrise le processus de lancement pour que mes services tournent de manière autonome sur le serveur.

J'utilise la commande de démarrage en arrière-plan (mode détaché) afin de libérer mon terminal tout en laissant les conteneurs s'exécuter :

# Lancement de la stack en mode détaché
docker compose up -d
Retour aux TPs