Session BRE05 Help

Docker

Présentation de Docker

Un peu d'histoire

Docker est à la base un projet interne de l'entreprise française dotCloud, qui proposait une plateforme de mise en Cloud. La première version Open Source de Docker a été publiée en 2013.

Qu'est-ce que c'est ?

Docker est une plateforme qui permet d'exécuter des applications en les plaçant dans des conteneurs logiciels.

Et en langage compréhensible ?

En simplifié, plutôt que de devoir, à chaque fois, installer toute une stack technique sur chaque machine voulant travailler sur un projet, on utilise un container, qui va contenir cette stack technique préconfigurée et on lance le container plutôt que de faire de multiples installations.

Le problème que Docker aide à résoudre

Une des problématiques principales lorsqu'une équipe de développement n'a pas un matériel strictement identique, c'est d'uniformiser les configurations.

À plus forte raison lorsque cette équipe doit travailler pour différents projets dont les configurations ne sont pas nécessairement identiques.

Docker permet d'uniformiser tout ça.

Exemple

Mon projet doit pouvoir tourner sur un serveur RedHat, avec Nginx et la version 7.4 de PHP : c'est la configuration du serveur du client. Problème : aucun de mes devs n'est sur RedHat (J'ai 2 devs sous Debian, et 2 sous MacOS, et tout le monde est à la dernière version de PHP : la 8.3).

Je vais donc créer un container Docker qui contient cette stack : RedHat + Nginx + PHP 7.4. Et chacun-e de mes devs n'aura qu'à faire tourner ce container sur son poste.

Lors du prochain projet pour un autre client, qui lui a un serveur sous Ubuntu 14.04 avec Apache 2 et PHP 5.4, je referai une autre image pour ce serveur que je ferai tourner et tous les devs pourront bosser sur le projet quelque soit leur environnement local.

Installation de Docker

Windows

Installation pour Windows

MacOS

Intel

Installation Mac Intel

Apple Silicon

Installation Mac Apple Silicon

Linux

Debian

Installation Linux Debian

Fedora

Installation Linux Fedora

Quelques configurations Docker utiles

Dans chacun de ces cas, vous devrez lancer la commande

docker-compose up

dans le dossier concerné ou

docker-compose up -d

Si vous voulez que la commande tourne en fond sans nécessairement voir tous les logs.

Stack LAMP (Linux, Apache, MySQL, PHP, PHPMyAdmin)

Un très bon repo GitHub pour une stack LAMP configurable est dispo ici

WordPress

docker-compose.yml

services: db: image: mysql:5.7 volumes: - db_bre05_data:/var/lib/mysql restart: always platform: linux/x86_64 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: bre05_db MYSQL_USER: bre05 MYSQL_PASSWORD: password wordpress: depends_on: - db image: wordpress:latest volumes: - .:/var/www/html/wp-content/ ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: bre05 WORDPRESS_DB_PASSWORD: password WORDPRESS_DB_NAME: bre05_db WORDPRESS_PASSWD: WggZIYN33wkMeG&nq* phpmyadmin: image: phpmyadmin/phpmyadmin ports: - "8080:80" environment: - PMA_HOST=db volumes: db_bre05_data: {}

MySQL + PHPMyAdmin

services: db: image: mysql:5.7 volumes: - db_database_data:/var/lib/mysql ports: - "3306:3306" restart: always platform: linux/x86_64 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: database MYSQL_USER: user MYSQL_PASSWORD: password phpmyadmin: image: phpmyadmin/phpmyadmin ports: - "8080:80" environment: - PMA_HOST=db - UPLOAD_LIMIT=300M volumes: db_database_data: {}
26 March 2026