fond

Qu'est-ce que Docker ?

Docker est un logiciel libre qui automatise le déploiement d'applications dans des conteneurs logiciels. Les conteneurs isolent les applications des autres applications et des environnements de la machine hôte, ce qui les rend plus faciles à déployer, à gérer et à orchestrer qu’une machine virtuelle par exemple. De plus, ils sont légers et peuvent être déployés rapidement, ce qui permet aux développeurs et aux administrateurs système de créer et de déployer des applications plus rapidement et plus efficacement.
decoration

Docker : les 3 concepts clés

Pour mieux comprendre Docker, voilà les trois concepts clés qui se cachent derrière, et qui forment la chaîne de déploiement de conteneurs :

  • les conteneurs : ce sont des espaces dans lesquels une application (site web, API, base de données) tourne avec son propre environnement. Chaque conteneur est une instance d’une image, qui possède son propre environnement d’exécution et donc ses propres répertoires.
  • les images : elles représentent le contexte (disposition des dossiers, la disponibilité de certaines librairies, le mapping de certains ports en interne et en externe du conteneur, des commandes à exécuter, etc.) que plusieurs conteneurs peuvent exécuter. Elles sont aux conteneurs ce que les classes sont aux objets en Programmation Orientée Objet : un template.
  • les fichiers Docker (Dockerfile) : ce sont des fichiers qui listent les instructions à exécuter pour build une image. Il est lu de haut en bas au cours du processus de build.

Pour aller plus loin sur la partie pure technique, vous pouvez consulter notre article qui traite des dessous du fonctionnement de Docker.

Docker : qu’est-ce que ça apporte concrètement dans un projet ?

Docker est au coeur des plateformes d’hébergement, cette technologie est utilisée partout ! Permettre à votre application d’être exécutée dans un contexte Docker aujourd’hui, c’est un vrai plus, et ce, pour plusieurs raisons :

  • Indépendance du contexte d’exécution de l’application
  • Un unique contexte d’exécution pour plusieurs environnements : fini les différences d’environnements entre le développement et la production !
  • Simplification de la mise à l’échelle de votre application grâce à des orchestrateurs comme Kubernetes
  • Une fois intégré dans vos pipelines CI/CD, il vous est possible d’effectuer un grand panel d’actions sur la même machine (une image Docker pour chacun de vos outils de CI/CD).

Notre retour d’expérience sur Docker à Lyon

Docker permet d’isoler votre application au sein d’un conteneur, cela apporte de nombreux avantages, mais nécessite une grande rigueur sur certains points :

  • Vous êtes le maître de votre conteneur, vous êtes donc responsable de la sécurité de votre environnement. Il est important de ne pas négliger cette partie et de vérifier que votre application n’a accès qu’au strict minimum.
  • Une machine peut exécuter plusieurs Docker en même temps. Si cette dernière est mal configurée, il est possible que les mauvaises performances d’un conteneur Docker puissent impacter les autres.
  • Le debuggage des conteneurs Docker est très complexe. En effet, on souhaite toujours avoir l’image Docker la plus légère possible, on retire donc tous les outils de debuggage pour gagner un maximum de place.

Les bonnes pratiques Docker

À première vue, créer son image Docker peut être simple ! Cependant, le faire en respectant les bonnes pratiques, peut s’avérer être bien plus compliqué... Lors de la conteneurisation de vos applications, il est important de faire attention aux points suivants :

  • Créer une image Docker la plus légère possible : cela permet d’optimiser au maximum tous les transferts réseaux effectués lors du déploiement de votre application.
  • Docker permet une mise à l’échelle simplifiée de votre application. Il faut cependant que cette dernière soit bien statefull !
  • Bien utiliser les tags associés aux images Docker pour un bon versionning de votre application. Cela permet de faciliter le rollback d’application en cas d’erreur.

Expertise Docker Lyon AXOPEN

Chez AXOPEN, nos experts Docker Lyon peuvent vous accompagner sur différentes missions :

  • Réalisation d’audit Docker : dans le cadre de notre audit DevOPS, nous incluons une partie sur l’état des lieux de l’utilisation de Docker
  • Accompagnement Docker, lors de la Dockeurisation de votre infrastructure
  • Déploiement et mise en place de monitoring de vos conteneurs Docker
Nos Références clients