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
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.