1.
Introduction à Docker
Docker est un outil de conteneurisation qui permet d'exécuter des applications dans des
environnements isolés appelés conteneurs. Ces conteneurs contiennent l'application, ses
bibliothèques, dépendances, et tout ce qu’il lui faut pour fonctionner, indépendamment de la
machine hôte.
2. Pourquoi Docker ?
- Évite le classique “chez moi ça marche”.
- Simplifie le déploiement et la mise en production.
- Standardise l’environnement de développement.
- Permet une portabilité maximale.
3. Différences entre VM et Docker
Machine Virtuelle (VM) vs Conteneur Docker :
- VM : OS complet, lourd, lent à démarrer.
- Docker : Léger, rapide, partage le noyau de l’hôte.
VM : [OS -> Hyperviseur -> VM -> App]
Docker : [OS -> Docker Engine -> Conteneur -> App]
4. Exemple réel : Dockeriser une API ou un site PHP
Structure du projet :
mon-projet/
■■■ src/
■ ■■■ index.php
■■■ Dockerfile
■■■ docker-compose.yml
Fichier index.php :
echo "Bienvenue sur mon API PHP dans un conteneur Docker !";
5. Le Dockerfile
FROM php:8.1-apache
COPY src/ /var/www/html/
EXPOSE 80
6. Fichier docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
7. Commandes Docker de base
- docker build -t mon-php-app .
- docker run -p 8080:80 mon-php-app
- docker ps
- docker stop
- docker save -o mon_image.tar mon-php-app
- docker load -i mon_image.tar
8. Partager un projet Docker
1. Sauvegarde : docker save -o mon_image.tar mon-php-app
2. Partage le fichier .tar
3. Importation : docker load -i mon_image.tar
4. Exécution : docker run -p 8080:80 mon-php-app
9. Accès distant à un conteneur
Exemple : si l'IP de ta machine est 192.168.1.100, l'autre personne peut visiter :
http://192.168.1.100:8080
■■ Il faut s'assurer que le port 8080 est ouvert sur le pare-feu.
10. Déploiement sur un serveur distant
1. Installer Docker sur le serveur.
2. Transférer l’image : scp mon_image.tar user@serveur:/home/user/
3. Importer sur le serveur : docker load -i mon_image.tar
4. Lancer : docker run -p 8080:80 mon-php-app
11. Résumé
Docker permet de :
- Simplifier les environnements de développement.
- Partager un projet avec n’importe qui.
- Déployer facilement.
- Éviter les problèmes de configuration.