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
MacOS
Intel
Apple Silicon
Linux
Debian
Fedora
Quelques configurations Docker utiles
Dans chacun de ces cas, vous devrez lancer la commande
dans le dossier concerné ou
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