Présentation de Docker
Présentation de Docker
Docker permet de créer des environnements (appelés conteneurs, ou containers en anglais) de manière à isoler des applications. Docker repose sur le kernel Linux[1] et sur une fonctionnalité : les containers, que vous connaissez peut-être déjà sous le nom de LXC[2]. L'idée est d'exécuter un processus (ou plusieurs) dans un environnement isolé[3]. Le conteneur qui accueille votre application aura un système de fichier qui lui est propre (pouvant contenir uniquement les fichiers nécessaires à l'application) et aura accès à certaines ressources du système hôte (mémoire, CPU, réseau). Avec Docker, on va pouvoir très simplement gérer nos différents conteneurs.
Exemple : Mais en pratique, à quoi Docker sert vraiment ?
Un petit exemple d'utilisation très classique nous est donné sur le site de Red Hat
« Imaginons que vous êtes en train de développer une application. Vous travaillez sur un ordinateur portable dont l'environnement présente une configuration spécifique. D'autres développeurs peuvent travailler sur des machines qui présentent des configurations légèrement différentes. L'application que vous développez repose sur cette configuration et dépend de fichiers spécifiques. En parallèle, votre entreprise exploite des environnements de test et de production qui sont standardisés sur la base de configurations qui leur sont propres et de l'ensemble des fichiers associés. Vous souhaitez émuler ces environnements autant que possible localement, mais sans avoir à payer les coûts liés à la recréation des environnements de serveur. Comment faire pour que votre application en développement puisse fonctionner dans ces environnements, passer l'assurance qualité et être déployée sans prise de tête, sans réécriture et sans correctifs ? La réponse est simple : il vous suffit d'utiliser des conteneurs. Le conteneur qui accueille votre application contient toutes les configurations (et les fichiers) nécessaires. Vous pouvez ainsi le déplacer entre les environnements de développement, de test et de production, sans aucun effet secondaire. La crise est évitée, le travail peut continuer. »
(source redhat.com[4])
Définition : Principes de Docker
Docker permet de créer des conteneurs en se basant sur 3 caractéristiques principales : la reproductibilité, l'isolation et la portabilité. La reproductibilité nous évite le classique "works in my machine" et nous permet d'avoir un même environnement en développement et en production, facilitant la mise en production des livrables. L'isolation, comme nous avons pu le lire plus haut, nous permet d’exécuter nos applications de manière indépendante les unes des autres. Enfin, la portabilité des conteneurs Docker nous permettra d’exécuter nos conteneurs de manière similaire dans des environnements physiques qui peuvent être très différents. Docker est une solution open-source, qui repose sur une grande communauté.
