Docker : définition et usages, on vous en dit plus !

Docker : définition et usages, on vous en dit plus !
  • Advertising
  • Branding
  • Culture Pix
  • Digital

Chez Pix, notre culture vise à partager et à apprendre pour grandir. On a donc décidé de vous présenter aujourd’hui dans la série « le dev web c’est magique », un sujet technique pour vous aider à mieux comprendre et à décrypter tout l’intérêt d’utiliser un Docker, ainsi que toutes les contraintes, les enjeux et les usages liés à cette plateforme.

Docker, quésako ?

Voyons ensemble, ce qu’est un Docker ! La définition technique :

« Docker est une plate-forme qui permet de concevoir, tester et déployer des applications en intégrant des logiciels dans des unités normalisées appelées conteneurs ».

Amazon

Ces derniers rassemblent les éléments nécessaires à leur fonctionnement, dont les bibliothèques, les outils système, le code et l’environnement d’exécution.

En d’autres termes plus simples, c’est un outil qui permet d’empaqueter et d’isoler une application ainsi que toutes ses dépendances et qui sera par la suite exécutable sur n’importe quel serveur. Ce fonctionnement a inspiré les créateurs de Docker, auquel ils ont associé des métaphores portuaires.

Le fonctionnement d’un Docker

Pour prendre un exemple concret, soit un site web créé à l’aide d’un bon vieux WordPress, quelques éléments sont nécessaires pour faire fonctionner le site, à savoir :

  • des sources du site,
  • un système d’exploitation, de type Linux,
  • un PHP,
  • un système de gestion de base de données, exemple MySQL,
  • et un serveur web, exemple Apache.

Les besoins seront récupérés par Docker à partir « d’images » mises à disposition par la communauté (ou par les éditeurs).

L’ensemble est à placer dans une boite à l’aide de Docker : un conteneur est né. Il ne reste plus qu’à lancer ce conteneur sur le serveur et là encore, Docker s’en charge. Bon, il ne s’en charge pas sans aide, il faut lui indiquer ce qu’il doit faire et comment le faire. Cela s’effectue avec des commandes dans un terminal.

Voici par exemple, un bout de code pour créer un conteneur propulsant un site WordPress :
docker create –name mon-super-conteneur -p 80:80 wordpress

Puis, un autre pour démarrer le conteneur :
docker start mon-super-conteneur

Une fois que la procédure de création docker a été effectuée par le biais des commandes ci-dessus, l’accès à http://localhost/ est désormais accessible.

Les spécificités des conteneurs d’application

La solution permet également de découper les besoins d’un projet en plusieurs conteneurs. Exemple, pour un même site, il peut y avoir un conteneur pour la base de données, un autre pour PHP et puis un pour le serveur web, etc.
En répartissant les charges, cela permet une scalabilité horizontale. Cette qualité « microservices » de Docker fait justement son succès.

Cependant comme toute solution informatique, Docker a également des inconvénients dont il faut prendre la mesure :

  • les outils de sauvegarde et de monitoring du serveur ne pourront pas être utilisés. Il faut donc mettre en place des outils spécifiques (heureusement il en existe).
  • les conteneurs sont isolés les uns des autres, mais partagent le même système d’exploitation. Ainsi, si une faille de sécurité apparaît sur l’OS, alors tous les conteneurs en feront les frais. Une solution serait de préférer des machines virtuelles.
  • plus il y a de conteneurs, plus la gestion et l’orchestration devient complexe. Une solution serait de regrouper les conteneurs et de redistribuer les services.

Pour répondre à certaines limitations (virtualisation et regroupement), il existe actuellement des outils qui ont le vent en poupe et qui font partie de ce que l’on nomme le « Container as a Service (Caas) », tels que :

Ce qu’on peut en dire

L’usage de Docker devient intéressant lorsque l’on héberge des applications utilisant des services très différents des uns des autres et nécessitant des configurations très spécifiques. Il n’est donc pas forcément une plus-value, si tous les sites sont notamment réalisés sur WordPress. Mais cela peut rester utile pour effectuer des tests rapides ou pour transmettre des applications clé en main.

Au sein de l’agence Pix, la solution Docker a permis de répondre à plusieurs besoins :

  • déployer des outils qui nécessitent un environnement très spécifique (wiki.js par exemple),
  • mettre en œuvre des mises à jour de sites et de leur environnement de manière rapide,
  • prendre en main des projets utilisant encore des ressources dépréciées (comme une version très ancienne de PHP),
  • créer des scripts de déploiement,
  • mettre à disposition aux prestataires externes et collaborateurs des sites packagés qui pourront être lancés en une commande.

Vous avez un projet lié à une problématique technique et/ou digitale ?
Contactez-nous ! Nos experts qualifiés en interne restent disponibles et joignables pour vous apporter des conseils avisés ou pour vous accompagner dans le lancement de votre projet.

Les typographies ont du caractère Structure & encadrement : couleurs vives et cadres
Un projet ? Contactez-nous !
Contactez-nous ! Un projet ?
Pix Associates - Logo blanc

Pour une expérience optimale, veuillez utiliser votre mobile ou tablette en mode portrait.