Aller au contenu principal

Docker

🐳 Docker, c'est quoi ?​

Docker est une application, qui permet de créer, déployer et exécuter des applications dans des conteneurs.

đŸ”č Un conteneur, c'est une sorte de mini-machine virtuelle ultra lĂ©gĂšre qui contient tout ce dont une application a besoin pour fonctionner :

✅ Le code de l'application

✅ Ses dĂ©pendances (librairies, outils
)

✅ Son environnement d'exĂ©cution

L'idée est de standardiser et isoler les applications.


🏗 Les concepts de base​

đŸ”č Image : Une "photo" d'un environnement prĂ©configurĂ© (ex: une image Ubuntu avec Apache installĂ©).

đŸ”č Conteneur : Une instance en cours d’exĂ©cution d’une image.

đŸ”č Dockerfile : Un script qui dĂ©finit comment construire une image Docker.

đŸ”č Docker Hub : Un registre public oĂč l'on peut tĂ©lĂ©charger des images Docker officielles (ex: nginx, mysql, ubuntu).


🛠 Les commandes Docker essentielles​

VĂ©rifier si Docker est installé​

docker --version

TĂ©lĂ©charger une image depuis Docker Hub​

docker pull ubuntu

Lister les images disponibles localement​

docker images

CrĂ©er et exĂ©cuter un conteneur​

docker run -d -p 8080:80 --name mon-apache httpd

Lance un serveur web Apache en arriĂšre-plan (-d), accessible sur le port 8080.

Lister les conteneurs en cours d'exĂ©cution​

docker ps

ArrĂȘter un conteneur​

docker stop mon-apache

Supprimer un conteneur​

docker rm mon-apache

Supprimer une image​

docker rmi httpd

Voir les logs d’un conteneur​

docker logs mon-apache

AccĂ©der Ă  un conteneur en ligne de commande​

docker exec -it mon-apache bash

📌 exemple

Lancer un serveur Nginx en conteneur​

docker run -d -p 8080:80 --name mon-nginx nginx

âžĄïž Maintenant, accĂšde Ă  http://localhost:8080 dans ton navigateur, et tu verras la page par dĂ©faut de Nginx ! 🎉


📩 Docker Compose : gĂ©rer plusieurs conteneurs​

Si ton application a plusieurs services (ex: une base de données + une API), Docker Compose permet de tout orchestrer avec un simple fichier docker-compose.yml.

Exemple : lancer une application WordPress + MySQL avec Docker Compose :

version: '3'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: rootpass

âžĄïž DĂ©marrage de l’environnement :

docker-compose up -d

Tu peux maintenant accéder à WordPress sur http://localhost:8080.