Cet article est plutôt orienté pour ceux qui utilisent - ou apprennent - Linux. Il est également recommandé pour les développeurs qui travaillent sur un environnement de développement devant être uniformisé et globalisé.
Docker est un logiciel libre de conteneurisation créé par Solomon Hykes en 2013. Il permet de gérer un ensemble d'“images” (snapshot de système Linux) et de les instancier en tant que “container”. Ces “images” peuvent être partagées sur un cloud officiel nommé “Docker hub”.
A quoi ça sert tout ça, "simplement" ?
Docker permet, entre autres, d’avoir un environnement identique entre différentes machines et ainsi d’éviter les problèmes contextuels, par exemple un logiciel A qui souhaite utiliser la librairie B, si la version de la librairie B change, le logiciel A peut se comporter différemment. En gros, tout le monde part de la même base et travaille sur le même environnement. Si un paramètre change (on change de version de PHP par exemple), ce changement sera pris en compte pour tout le monde qui travaille sur le projet. Docker permet également d'installer rapidement un environnement de travail en téléchargeant une image construite et paramétrée par quelqu'un d'autre (votre collègue ou des développeurs des plateformes officielles). De plus, Docker est facilement paramétrable, installable et extensible. Ceci est notamment dû, quand on utilise Docker sur des machines Linux, à la légèreté de ses images qui se basent sur le système hôte pour fonctionner (contrairement à une machine virtuelle (VM) qui simule son propre OS et est donc beaucoup plus consommatrice). C'est donc un logiciel qui vous simplifiera la vie, surtout si vous travaillez en équipe.
Docker fonctionne de manière usuelle en ligne de commande (docker pull, docker build, docker run, docker images, docker ps...) même si des interfaces graphiques existent (l'officiel étant Kitematic). Il s'utilise normalement sur Linux (et c'est conseillé) mais peut être également installé sur les OS Windows et Mac (notamment avec l'outil Docker Desktop). Si vous souhaitez en apprendre plus sur ces différentes commandes et leur utilisation, nous vous conseillons notamment le cours Docker sur OpenClassRooms et/ou les cours Grafikart sur Docker.
Le principe, rapidement :
On commence par récupérer une image. Celle-ci s'obtient soit sur “Docker Hub” (comme pour Git) soit elle peut être construite à partir d'un Dockerfile (fichier que Gérard peut très bien vous envoyer par mail). Ces “images” sont ensuite instanciables (on lance la machine) avec une commande particulière (docker run).
Un petit exemple => el famoso Hello World (prérequis : avoir installé Docker) :
1) Récupération de l’image sur Docker Hub : docker pull hello-world
2) Instanciation de l’image hello-world : docker run hello-world
Commandes qui vous seront bien utiles :
On vous laisse ci-dessous un petit tuto de présentation de maître Grafikart.