Webgaga
Webgaga

Lecture en cours : Déployez vos applications en toute légèreté avec Docker

Précédent Suivant
Déployez vos applications en toute légèreté avec Docker

Déployez vos applications en toute légèreté avec Docker

Créé en 2013, Docker est un logiciel libre permettant de lancer des applications dans des conteneurs logiciels.

Définition de Docker 

Créé en 2013 par Solomon Hykes, Docker est un logiciel libre permettant de lancer des applications dans des conteneurs logiciels. Docker permet d’embarquer une application dans un ou plusieurs conteneurs logiciels qui pourra s’exécuter sur n’importe quel serveur machine, qu’il soit physique ou virtuel. Docker peut fonctionner sous Linux comme Windows Server.  

« Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n’importe quel serveur ». Source : https://www.docker.com/


Docker c’est donc, avant tout, une technologie qui a pour but et objectif de faciliter les déploiements d’applications et la gestion de l’infrastructure liée.


Le fonctionnement de Docker

Techniquement, Docker étend le format de conteneur Linux standard (LXC) grâce à une API fournissant une solution de virtualisation qui exécute les processus de façon isolée. Pour cela, Docker utilise entre autres LXC, cgroups et le noyau Linux. 

La technologie de conteneur de Docker peut être utilisée pour étendre des systèmes distribués de façon qu’ils s’exécutent de manière autonome depuis une seule machine physique.

Schématisation du fonctionnement de Docker

En termes d’architecture, Docker fonctionne sur une architecture client <> serveur. Plus précisément, le client Docker communique avec le Docker Deamon qui fait tourner le Docker Engine. Le client Docker et le Daemon Docker pouvant (ou non) tourner sur des machines différentes.

L’architecture client <> serveur de Docker

Côté fonctionnement, sur Docker, un conteneur est lancé en exécutant une image. Une image est un package qui inclut tout ce qui est nécessaire à l’exécution d’une application, à savoir : le code, l’exécution, les variables d’environnement, les bibliothèques et les fichiers de configuration. 

Concrètement, l’image Docker est une image prête à l’emploi, avec des instructions pour la création de conteneur.

Ces images toutes prêtes sont déjà existantes dans le Docker Hub créées par les éditeurs et/ou par la communauté ! 

Capture d’écran de Docker Hub

A) Machines Virtuelles VS Docker

On pourrait penser que les conteneurs ( = fonctionnement de Docker) et les machines virtuelles fonctionnent de la “même manière” et sont la “même chose” hors ce n’est pas exactement le cas.

Certes, les conteneurs et les machines virtuelles présentent des avantages d’isolation et d’allocation des ressources similaires mais sont différents dans leur approche de virtualisation

La virtualisation permet, via un hyperviseur, de simuler une ou plusieurs machines physiques, et les exécuter sous forme de machines virtuelles (VM) sur un serveur ou un terminal. Ces Machines Virtuelles intègrent elles-mêmes un OS sur lequel des applications sont exécutées. Ce n’est pas le cas du conteneur logiciel (pas d’OS). 

Le conteneur fait en effet directement appel à l’OS de sa machine hôte pour réaliser ses appels système et exécuter ses applications, d’où son extrême légèreté. 


Les conteneurs sont donc beaucoup plus légers que les machines virtuelles ce qui signifie plus rapide à migrer, télécharger et à sauvegarder, restaurer. Également l’approche Docker permet également aux serveurs d’héberger beaucoup plus de conteneurs que s’il agissait de machines virtuelles (car nécessitant beaucoup plus de ressources).

Schéma Conteneur VS Machine Virtuelle

Les avantages de Docker

Avec des applications PHP contenant beaucoup et de plus en plus de dépendances (MongoDB, Elastic Search, Algolia,…) ainsi que beaucoup de librairies, de nombreuses problématiques et difficultés côté serveur voient le jour. Docker facilite ce travail ce qui, aujourd’hui, explique son succès. Docker est même aujourd’hui le leader et champions de la conteneurisation.  

Docker en chiffres

A) Rapidité

Avant tout, Docker permet de faciliter et d’accélérer les déploiements puisque les conteneurs sont beaucoup plus facilement transportables entre serveurs Linux. 

Docker permet de transporter une application de façon fluide entre les différents environnements c’est-à-dire depuis l’environnement de développement jusqu’à l’environnement de production et inversement, quasiment en un seul clic !

B) Légèreté

Comme le conteneur n’embarque pas d’OS comparativement à la machine virtuelle, il est ainsi beaucoup plus léger que cette dernière. Effectivement Docker n’a pas besoin d’activer un second système pour exécuter ses applications ainsi plus concrètement cela se traduit par un lancement plus rapide, mais aussi par la capacité à migrer plus facilement un conteneur d’une machine physique à une autre (du fait d’un poids très faible).

C) Compatibilité

Grâce à Dockerfile présent à sa racine, Docker répond à la problématique de compatibilité des applications sur plusieurs OS ou Cloud facilitant ainsi le travail. 

Seule condition, les Cloud en présence doivent être optimisés pour les accueillir, et c’est le cas des principaux : Amazon Web Services, Microsoft Azure, Google Cloud Platform, OVH…

Compatibilités Docker

WEBQAM et la mise en place Docker 

Nous avons déjà mis en place la solution Docker pour 5 projets : 

  • 3 projets pour Orange, dont le site “On reste ensemble” sous Laravel.
  • le nouveau site à venir Enedis sous Drupal présentant le gestionnaire d’électricité français. 
Références clients Webqam sous Docker

L’instauration de Docker a été stratégique sur ces projets, puisqu’il nous a permis de faciliter et accélérer nos déploiements sur l’univers de production et réduire le nombre de risque de régressions entre univers de préprod et production. De plus, une couche de sécurité a été apportée avec ce cloisonnement fort. Aucun risque qu’un site victime d’un hack puisse en impacter en autre avec la conteneurisation imposée par Docker.


WEBQAM installe Docker sur de plus en plus de projets en fonction notamment des problématiques et besoins clients. En attendant, si vous souhaitez en savoir plus sur la solution et/ou obtenir un devis n’hésitez pas à nous contacter. Avec à la clef des résultats en terme de perfs, notamment grâce à l’optimisation de la configuration serveur pour un projet spécifique, mais aussi grâce à l’utilisation des dernières versions des programmes sur les serveurs.

Profitez d’une infographie résumant le processus du logiciel Docker ! 

Partager cet article

Copié !

Articles supplémentaires

Découvrir
Copié !
Logo React
Webqam, votre agence React
React, également appelée la technologie de "Facebook", a été reconnue comme la technologie Web de l'année 2018. ...
15 janvier 2018 Lecture 3 minute Niveau Débutant