Docker, le guide complet : Installation et utilisation

Accueil PHP 8 Docker, le guide complet : Installation et utilisation

Dans le monde du développement web, Docker est devenu un outil incontournable. Il permet aux développeurs de créer, déployer et exécuter des applications dans des conteneurs légers et isolés. Ce tutoriel complet vous explique en détail comment fonctionne Docker, à quoi il sert et pourquoi il est devenu indispensable pour les applications web modernes. Ce tutoriel Docker est accessible à tous, y compris aux débutants.

Docker : Qu’est ce que c’est ? À quoi il sert ?

Docker est une plateforme open-source qui permet de virtualiser des applications sous forme de conteneurs. Contrairement aux machines virtuelles, qui nécessitent une copie complète d’un système d’exploitation, un conteneur Docker partage le noyau du système hôte tout en restant isolé. Cela permet une exécution plus rapide et plus légère des applications.

Par exemple, si on développe une application web en PHP avec MySQL, Docker permet de créer un environnement identique à son PC et son serveur sans avoir à installer PHP, Apache et MySQL manuellement. Avec un simple docker-compose up -d, tout est prêt en quelques secondes ! 🔥 donc pas besoin de Mamp ou similaire !

Pourquoi utiliser Docker pour une application web ?

L’utilisation de Docker pour une application web offre plusieurs avantages :

  • Portabilité : Un conteneur Docker peut fonctionner sur n’importe quel système (Windows, macOS, Linux) sans modification.
  • Isolation : Chaque conteneur est indépendant et ne dépend pas du système hôte.
  • Facilité de déploiement : Docker permet d’automatiser le déploiement d’une application web sans se soucier des différences entre les environnements.
  • Scalabilité : Il est facile de dupliquer et de gérer plusieurs instances d’une application grâce à l’orchestration avec Docker Compose ou Kubernetes.
  • Gestion des dépendances : Toutes les librairies et configurations nécessaires sont incluses dans l’image Docker.

Comment fonctionne Docker ?

Les Concepts Clés de Docker

  • Images Docker : Ce sont des modèles préconçus contenant tout ce qu’il faut pour exécuter une application (code, dépendances, configurations).
  • Conteneurs Docker : Un conteneur est une instance en cours d’exécution d’une image Docker.
  • Dockerfile : Un fichier qui décrit les étapes pour créer une image Docker personnalisée.
  • Docker Hub : Un registre en ligne où l’on peut trouver et partager des images Docker.
  • Volumes Docker : Utilisés pour stocker les données persistantes d’un conteneur.

Cycle de Vie d’un Conteneur Docker

  • Création d’une image via un Dockerfile.
  • Construction de l’image avec la commande : docker build -t mon-application
  • Exécution du conteneur basé sur l’image créée : docker run -d -p 8080:80 mon-application
  • Gestion du conteneur avec des commandes comme docker psdocker stopdocker rm.

Docker révolutionne le déploiement des applications web grâce à son approche basée sur les conteneurs. Il simplifie la gestion des environnements et assure une meilleure scalabilité et portabilité. Que vous soyez développeur débutant ou expérimenté, maîtriser Docker est aujourd’hui essentiel pour le développement web moderne.


Exemple concret : Déploiement d’une application web sous Node.js avec Docker

Dans cet exemple, nous allons dockeriser et déployer une application web simple avec Docker. L’application sera un serveur Node.js avec Express, qui affiche un message sur le navigateur.

Avant de commencer, assurez-vous d’avoir installé Docker sur votre machine :

🔗 Télécharger Docker

Création de l’application web avec Node.js

Nous allons créer une petite application Node.js avec Express.

Créer l’arborescence du projet

Dans un dossier mon-app-docker, créez la structure suivante :

mon-app-docker/
│── Dockerfile
│── package.json
│── server.js

Écrire le fichier package.json

Créez un fichier package.json dans le dossier mon-app-docker au format JSON :

{
  "name": "mon-app-docker",
  "version": "1.0.0",
  "description": "Application web simple avec Docker",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

Créer le fichier server.js

Créez un fichier server.js qui va lancer un serveur web Express :

const express = require("express");
const app = express();
const PORT = 3000;

app.get("/", (req, res) => {
  res.send("🚀 Mon application web tourne avec Docker !");
});

app.listen(PORT, () => {
  console.log(`Serveur démarré sur http://localhost:${PORT}`);
});

Création du Dockerfile

Le Dockerfile définit l’environnement et la manière dont l’application doit être exécutée dans un conteneur.

Créez un fichier Dockerfile dans le dossier mon-app-docker :

# 1. Utiliser l'image Node.js officielle
FROM node:18

# 2. Définir le dossier de travail dans le conteneur
WORKDIR /app

# 3. Copier les fichiers nécessaires
COPY package.json ./
COPY server.js ./

# 4. Installer les dépendances
RUN npm install

# 5. Exposer le port sur lequel l’application tourne
EXPOSE 3000

# 6. Lancer l’application
CMD ["npm", "start"]

Construire l’image Docker

Dans le terminal, placez-vous dans le dossier mon-app-docker et exécutez la commande suivante :

docker build -t mon-app .

🔹 Explication :

  • docker build : Construit une image Docker
  • -t mon-app : Attribue le nom mon-app à l’image

Lancer le conteneur

Une fois l’image construite, exécutez le conteneur avec :

docker run -d -p 8080:3000 mon-app

🔹 Explication :

  • docker run : Lance un conteneur
  • -d : Mode détaché (en arrière-plan)
  • -p 8080:3000 : Lie le port 8080 du PC au port 3000 du conteneur
  • mon-app : Nom de l’image à exécuter

Votre application est maintenant accessible à l’adresse :

🔗  http://localhost:8080

Vérifier que le conteneur tourne

Pour voir la liste des conteneurs actifs :

docker ps

Pour arrêter le conteneur :

docker stop <ID_DU_CONTENEUR>

Pour supprimer le conteneur :

docker rm <ID_DU_CONTENEUR>

(Optionnel) Utilisation de Docker Compose

Si vous voulez automatiser le lancement de votre application, vous pouvez utiliser Docker Compose.

Créez un fichier docker-compose.yml :

version: "3"
services:
  web:
    build: .
    ports:
      - "8080:3000"

Puis, exécutez simplement :

docker-compose up -d

Vous avez maintenant une application Node.js qui tourne dans un conteneur Docker ! Cette méthode fonctionne aussi avec PHP, Python (Flask, Django), Ruby, etc...

💡 Pourquoi utiliser Docker pour une application web ? 

✔️ Facilité de déploiement
✔️ Compatibilité assurée sur toutes les machines
✔️ Isolation des dépendances


Exemple concret : Déployer une application PHP avec Docker

Dans cet exemple, nous allons dockeriser et déployer une application PHP avec Apache en utilisant Docker.

Création de l’application PHP

Nous allons créer un projet PHP simple qui affiche un message sur une page web.

Arborescence du projet

Dans un dossier mon-app-php, créez la structure suivante :

mon-app-php/
│── Dockerfile
│── index.php
│── site.conf
│── docker-compose.yml

Créer le fichier index.php

C’est notre fichier PHP principal, qui s’affichera dans le navigateur.

<?php
echo "🚀 Mon application PHP fonctionne avec Docker !";
?>

Création du Dockerfile

Le Dockerfile permet de définir l’environnement PHP et Apache à utiliser.

Créez un fichier Dockerfile dans mon-app-php :

# 1. Utiliser l’image officielle PHP avec Apache
FROM php:8.2-apache

# 2. Copier les fichiers du projet dans le conteneur
COPY index.php /var/www/html/

# 3. Exposer le port 80 (port HTTP utilisé par Apache)
EXPOSE 80

# 4. Lancer Apache en arrière-plan
CMD ["apache2-foreground"]

Création du fichier site.conf (Optionnel)

Si vous souhaitez configurer un hôte virtuel Apache, créez un fichier site.conf :

<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Construire l’image Docker

Placez-vous dans le dossier mon-app-php et exécutez :

docker build -t mon-app-php 

🔹 Explication :

  • docker build : Construit une image Docker
  • -t mon-app-php : Attribue le nom mon-app-php à l’image

Lancer le conteneur PHP

Une fois l’image construite, exécutez le conteneur avec :

docker run -d -p 8080:80 mon-app-php

🔹 Explication :

  • docker run : Lance un conteneur
  • -d : Mode détaché (en arrière-plan)
  • -p 8080:80 : Lie le port 8080 du PC au port 80 du conteneur
  • mon-app-php : Nom de l’image à exécuter

Votre application PHP est maintenant accessible à l’adresse :

🔗  http://localhost:8080

Vérifier que le conteneur tourne

Pour voir les conteneurs actifs :

docker ps

Pour arrêter le conteneur :

docker stop <ID_DU_CONTENEUR>

Pour supprimer le conteneur :

docker rm <ID_DU_CONTENEUR>

(Optionnel) Utilisation de Docker Compose

Si vous voulez automatiser le lancement, utilisez Docker Compose.

Créez un fichier docker-compose.yml :

version: "3.8"
services:
  php-apache:
    build: .
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html

Lancez l’application avec :

docker-compose up -d

Félicitations ! Vous avez maintenant une application PHP qui tourne dans un conteneur Docker avec Apache !

💡 Pourquoi utiliser Docker pour une application PHP ?

✔️ Facilité de déploiement
✔️ Environnement isolé et reproductible
✔️ Fonctionne sur toutes les machines


Déployer une application PHP sous Docker sur un serveur en SSH

Maintenant que votre application PHP tourne localement avec Docker, nous allons voir comment la déployer sur un serveur distant.

Avant de commencer, assurez-vous d’avoir :

✅ Un serveur distant (VPS, dédié, ou cloud) avec Ubuntu/Debian
✅ Docker installé sur le serveur
✅ Accès SSH au serveur
✅ Un nom de domaine (optionnel, mais recommandé)

Installer Docker sur le serveur

Connectez-vous à votre serveur via SSH :

ssh utilisateur@mon-serveur-ip

Ensuite, installez Docker et Docker Compose :

sudo apt update && sudo apt install -y docker.io docker-compose

Vérifiez que Docker est bien installé :

docker --version

Transférer l’application sur le serveur

Il existe plusieurs méthodes pour envoyer votre code PHP sur le serveur :

Méthode 1 : Utiliser scp (simple et rapide)

Depuis votre PC, transférez votre projet avec :

scp -r mon-app-php utilisateur@mon-serveur-ip:~/

Cela va copier le dossier mon-app-php dans le répertoire home du serveur.

Méthode 2 : Utiliser git (meilleure gestion des mises à jour)

Si votre projet est sur GitHub ou GitLab, vous pouvez simplement le cloner sur le serveur :

git clone https://github.com/votre-repo/mon-app-php.git

Construire et exécuter l’application sur le serveur

Accédez au dossier de votre application :

cd mon-app-php

Puis, construisez l’image Docker :

docker build -t mon-app-php .

Lancez le conteneur en exposant le port 80 :

docker run -d -p 80:80 --restart always mon-app-php

🔹 Explication :

  • -d : Exécute en arrière-plan
  • -p 80:80 : Expose le port 80 du serveur
  • --restart always : Relance le conteneur en cas de crash/redémarrage

Votre application est maintenant disponible sur http://mon-serveur-ip !

(Optionnel) Déploiement avec Docker Compose

Si vous utilisez Docker Compose, créez un fichier docker-compose.yml :

version: "3.8"
services:
  php-apache:
    build: .
    ports:
      - "80:80"
    volumes:
      - .:/var/www/html
    restart: always

Lancez l’application avec :

docker-compose up -d

Ajouter un Nom de Domaine avec Nginx (Optionnel mais recommandé)

Si vous voulez accéder à votre site via un nom de domaine, il faut configurer un reverse proxy Nginx avec un certificat SSL.

Installer Nginx et Certbot

sudo apt install nginx certbot python3-certbot-nginx -y

Créer un VirtualHost pour votre domaine

Éditez un fichier de configuration Nginx :

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?
sudo nano /etc/nginx/sites-available/mon-site

Ajoutez :

server {
    listen 80;
    server_name mon-domaine.com;

    location / {
        proxy_pass http://localhost:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Activez le site et redémarrez Nginx :

sudo ln -s /etc/nginx/sites-available/mon-site /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Ajouter un certificat SSL (HTTPS)

sudo certbot --nginx -d mon-domaine.com

Mettre à Jour l’Application

Si vous faites des modifications sur votre projet, voici comment les appliquer :

mon-app-php
git pull  # Si vous utilisez Git
docker build -t mon-app-php .
docker stop mon-app-php
docker rm mon-app-php
docker run -d -p 80:80 --restart always mon-app-php

Votre application PHP tourne désormais sur votre serveur Dockerisé !
Cette méthode est fiablescalable et facile à gérer.

🔹 Avantages de Docker pour le déploiement PHP :

✔️ Facile à migrer sur un autre serveur
✔️ Fonctionne sur toutes les configurations
✔️ Séparation des dépendances et de l’environnement


Déployer une application PHP Docker sur un serveur OVH, IONOS ou O2Switch

Dans cet exemple, nous allons voir comment déployer une application PHP sous Docker sur un serveur OVH, IONOS ou O2Switch, en utilisant FileZilla pour le transfert des fichiers et SSH pour les commandes Docker.

Avant de commencer, vous devez avoir :

✅ Un serveur VPS chez OVH, IONOS ou O2Switch (⚠️ Un hébergement mutualisé ne supporte pas Docker !)
✅ Docker installé sur votre serveur
✅ Un accès SSH et FTP au serveur
✅ FileZilla installé sur votre PC ou Mac ou un autre client FTP

Récupérer les accès FTP et SSH de votre serveur

Sur OVH

  • Allez sur l’espace client OVH → Hébergements → FTP-SSH
  • Notez l’adresse FTP, le port, le login et le mot de passe

Sur IONOS

  • Connectez-vous à l’interface IONOS → Serveurs & Cloud
  • Notez vos identifiants SSH et FTP

Sur O2Switch

  • Connectez-vous au cPanel → Comptes FTP
  • Notez l’adresse FTP, le port et les identifiants

Transférer l’application avec FileZilla

Connecter FileZilla à votre serveur

1️⃣ Ouvrez FileZilla
2️⃣ Allez dans Fichier → Gestionnaire de sites
3️⃣ Ajoutez une nouvelle connexion :

  • Hôte : l’adresse FTP de votre serveur
  • Identifiant : votre nom d’utilisateur FTP
  • Mot de passe : votre mot de passe FTP
  • Port : 21 (par défaut)
  • Protocole : FTP – Protocole de transfert de fichiers
  • Mode de chiffrement : « Utiliser FTP explicite sur TLS si disponible »

4️⃣ Cliquez sur « Connexion »

Envoyer les fichiers sur le serveur

Dans FileZilla, côté gauche (votre PC), sélectionnez votre dossier mon-app-php.

📂 Glissez-déposez ce dossier dans le répertoire /home/utilisateur/ du serveur (côté droit).

✅ Les fichiers sont maintenant sur le serveur !

Se connecter en SSH et installer Docker

Se connecter au serveur via SSH

Sur votre PC, ouvrez un terminal et tapez :

ssh utilisateur@mon-serveur-ip

Saisissez votre mot de passe SSH.

Installer Docker sur le serveur

Si Docker n’est pas installé, exécutez :

sudo apt update && sudo apt install -y docker.io docker-compose

Vérifiez l’installation :

docker --version

Construire et exécuter l’application sur le serveur

Accédez au dossier de l’application :

cd mon-app-php

Puis, construisez l’image Docker :

docker build -t mon-app-php .

Lancez l’application sur le serveur :

docker run -d -p 80:80 --restart always mon-app-php

🔹 Explication :

  • -d : Mode détaché (en arrière-plan)
  • -p 80:80 : Expose le port 80 du serveur
  • --restart always : Relance le conteneur après un redémarrage

Votre application est maintenant accessible à l’adresse :

🔗  http://mon-serveur-ip

(Optionnel) Déploiement avec Docker Compose

Si vous souhaitez automatiser le lancement de l’application, utilisez Docker Compose.

Créer un fichier docker-compose.yml

version: "3.8"
services:
  php-apache:
    build: .
    ports:
      - "80:80"
    volumes:
      - .:/var/www/html
    restart: always

Lancer l’application avec Compose

docker-compose up -d

(Optionnel) Associer un nom de domaine avec Nginx

Si vous avez un nom de domaine, vous pouvez configurer Nginx en tant que reverse proxy.

Installer Nginx et Certbot

sudo apt install nginx certbot python3-certbot-nginx -y

Configurer le VirtualHost

Créez un fichier de configuration Nginx :

sudo nano /etc/nginx/sites-available/mon-site

Ajoutez :

server {
    listen 80;
    server_name mon-domaine.com;

    location / {
        proxy_pass http://localhost:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Activez le site et redémarrez Nginx :

sudo ln -s /etc/nginx/sites-available/mon-site /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Ajouter un certificat SSL (HTTPS)

sudo certbot --nginx -d mon-domaine.com

✅ Votre site est maintenant accessible avec HTTPS !

Mettre à Jour l’Application

Si vous mettez à jour votre projet, voici comment redéployer :

cd mon-app-php
docker build -t mon-app-php .
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker run -d -p 80:80 --restart always mon-app-php

Vous avez maintenant déployé votre application PHP sous Docker sur un serveur OVH, IONOS ou O2Switch, en utilisant FileZilla et SSH !

💡 Pourquoi utiliser Docker pour le déploiement PHP ?

✔️ Facilité de migration entre serveurs
✔️ Isolation complète des dépendances
✔️ Scalabilité et simplicité d’administration


BONUS : Docker Compose, comment l’utiliser

Docker est un outil puissant, mais lorsqu’une application nécessite plusieurs services (comme PHP, MySQL et Nginx), gérer plusieurs conteneurs devient compliqué. C’est là que Docker Compose intervient !

Qu’est-ce que Docker Compose ?

Docker Compose est un outil qui permet de définir et exécuter des applications multi-conteneurs avec un simple fichier YAML (docker-compose.yml).

✅ Il simplifie le déploiement et la gestion des conteneurs.
✅ Il permet de démarrer plusieurs services en une seule commande.
✅ Il facilite la mise à jour et la maintenance des applications.

👉 Exemple typique d’une application avec Docker Compose :
Une application PHP qui utilise Apache, une base de données MySQL, et un serveur phpMyAdmin pour l’administration.

À quoi sert Docker Compose ?

💡 Docker Compose est utile pour :

✔️ Créer et gérer plusieurs conteneurs en même temps
✔️ Éviter de taper des commandes Docker compliquées
✔️ Faciliter le partage et la mise en production d’un projet
✔️ Définir un environnement cohérent (même config en local et sur serveur)

📌 Sans Docker Compose :
Il faudrait lancer chaque conteneur individuellement avec docker run ..., ce qui devient vite ingérable.

📌 Avec Docker Compose :
Un simple docker-compose up -d suffit pour démarrer toute l’application.

Comment fonctionne Docker Compose ?

Docker Compose utilise un fichier YAML (docker-compose.yml) où vous définissez tous les services nécessaires à votre application.

Exemple de docker-compose.yml pour une application PHP avec MySQL

version: "3.8"  # Version de Docker Compose
services:
  php-apache:
    image: php:8.1-apache
    container_name: mon-php-container
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7
    container_name: mon-mysql-container
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mon_app
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: mon-phpmyadmin-container
    depends_on:
      - mysql
    ports:
      - "8081:80"
    environment:
      PMA_HOST: mysql

Explication :

📌 services : Définit les différents conteneurs (PHP, MySQL, phpMyAdmin).
📌 image : Spécifie quelle image Docker utiliser.
📌 ports : Associe un port de la machine à un port du conteneur.
📌 volumes : Monte un dossier local dans le conteneur.
📌 depends_on : Assure que MySQL démarre avant PHP.
📌 environment : Définit des variables d’environnement (mot de passe MySQL, utilisateur, etc.).

Docker Compose : Commandes essentielles

🔹 Démarrer l’application

docker-compose up -d

Lance tous les services en arrière-plan (-d = détaché).

🔹 Arrêter l’application

docker-compose down

Arrête et supprime les conteneurs.

🔹 Afficher les logs des conteneurs

docker-compose logs -f

Affiche les journaux en temps réel.

🔹 Voir les services en cours d’exécution

docker-compose ps

Liste les conteneurs actifs.

🔹 Recharger une application après modification

docker-compose up -d --build

Reconstruit les conteneurs et relance l’application.

Avantages de Docker Compose

✅ Facilité d’orchestration : Une seule commande pour tout lancer
✅ Configuration centralisée : Un seul fichier docker-compose.yml
✅ Consistance : Même environnement sur toutes les machines
✅ Scalabilité : Facile à déployer sur un serveur

Docker Compose simplifie la gestion des conteneurs en permettant de définir et de lancer une application complète en une seule commande.

👉 Utilisez Docker Compose pour :

✔️ Travailler sur un projet PHP/MySQL sans galérer avec l’installation
✔️ Déployer facilement votre application sur un serveur
✔️ Gérer plusieurs services sans perdre de temps


BONUS : Qu’est-ce qu’un fichier YAML ?

YAML (Yet Another Markup Language, ou YAML Ain’t Markup Language) est un format de sérialisation de données qui est facile à lire et écrire. Il est souvent utilisé pour configurer des applications, comme Docker Compose, Kubernetes, Ansible, CI/CD et bien d’autres outils.

Pourquoi utiliser YAML ?

✅ Lisibilité : Plus lisible que JSON ou XML
✅ Simplicité : Pas de balises compliquées comme en XML
✅ Indentation claire : Utilise l’espace blanc pour structurer les données
✅ Compatibilité : Utilisé par de nombreux outils

Exemple de comparaison :

📌 Fichier JSON

{
  "nom": "Alban",
  "age": 43,
  "ville": "Troyes"
}

📌 Fichier YAML (équivalent)

nom: Alban
age: 43
ville: Troyes

👉 Plus clair et plus lisible !

Syntaxe YAML : Les bases

1️⃣ Clés et valeurs

Chaque ligne contient une clé suivie de : et de sa valeur.

nom: Alban
age: 43

2️⃣ Indentation avec des espaces (pas de tabulation !)

YAML utilise l’indentation avec des espaces pour structurer les données (comme en Python).

utilisateur:
  nom: Alban
  age: 43
  ville: Troyes

3️⃣ Listes (Tableaux)

Les listes sont définies avec - devant chaque élément.

fruits:
  - Pomme
  - Banane
  - Orange

4️⃣ Dictionnaires imbriqués (Objets dans objets)

personne:
  nom: Alban
  adresse:
    rue: "12 rue des Lilas"
    ville: Troyes

5️⃣ Valeurs multiples sur une seule ligne

serveurs: [web, base_de_donnees, cache]

🔹 Équivalent à :

serveurs:
  - web
  - base_de_donnees
  - cache

6️⃣ Valeurs sur plusieurs lignes

Utilisez > pour une seule ligne continue :

description: >
  Ceci est une description
  sur plusieurs lignes, mais
  elle sera affichée en une seule ligne.

Utilisez | pour conserver les retours à la ligne :

message: |
  Ceci est un message
  qui conserve les retours à la ligne.

Exemple concret avec Docker Compose

Voici un fichier docker-compose.yml qui définit une application PHP avec MySQL.

version: "3.8"
services:
  php:
    image: php:8.1-apache
    volumes:
      - .:/var/www/html
    ports:
      - "8080:80"

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mon_app

📌 Explication :

  • version : Indique la version de Docker Compose.
  • services : Décrit les conteneurs (php et mysql).
  • image : Indique l’image Docker à utiliser.
  • volumes : Monte le dossier actuel (.) dans /var/www/html.
  • ports : Associe le port 8080 de la machine hôte au port 80 du conteneur.
  • environment : Définit des variables d’environnement pour MySQL.

✅ YAML est un format simple, lisible et puissant pour définir des configurations.
✅ Utilisé partout : Docker Compose, Kubernetes, Ansible, CI/CD, etc.
✅ Facile à apprendre : Basé sur l’indentation et les clés-valeurs.

Docker, le guide complet
Live on Twitch
  • 🔥 Vendredi 25 Avril 2025 >19h00

    HTML & SémantiqueStructure d'une page HTML