Définition de « Docker »

Docker aide les développeurs à créer des conteneurs logiciels légers et portables qui simplifient le développement, les tests et le déploiement d’applications.

Docker est une plate-forme logicielle permettant de créer des applications basées sur des conteneurs, des environnements d’exécution petits et légers qui utilisent le noyau du système d’exploitation de manière partagée, mais s’exécutent par ailleurs indépendamment les uns des autres. Alors que les conteneurs sont utilisés dans les systèmes Linux et Unix depuis un certain temps, Docker, un projet open source lancé en 2013, a contribué à populariser la technologie en facilitant plus que jamais pour les développeurs l’empaquetage de leur logiciel pour « construire une fois et s’exécuter n’importe où ».

Une brève histoire de Docker

Fondé sous le nom de DotCloud en 2008 par Solomon Hykes à Paris, ce que nous connaissons maintenant sous le nom de Docker a commencé comme une plate – forme en tant que service (PaaS) avant de pivoter en 2013 pour se concentrer sur la démocratisation des conteneurs logiciels sous-jacents sur lesquels sa plate-forme fonctionnait.

Hykes a fait la première démonstration de Docker à PyCon en mars 2013, où il a expliqué que Docker avait été créé parce que les développeurs n’arrêtaient pas de demander la technologie sous-jacente alimentant la plate-forme DotCloud. «Nous avons toujours pensé que ce serait cool de pouvoir dire:« Oui, voici notre pièce de bas niveau. Maintenant, vous pouvez créer des conteneurs Linux avec nous et faire ce que vous voulez, allez construire votre plate-forme.’ C’est donc ce que nous faisons.

Et c’est ainsi que Docker est né, le projet open source attirant rapidement l’attention des développeurs et attirant l’attention de fournisseurs de technologies de premier plan comme Microsoft, IBM et Red Hat, ainsi que des investisseurs en capital-risque prêts à injecter des millions de dollars dans l’innovation Commencez. La révolution des conteneurs avait commencé.

Que sont les conteneurs ?

Comme Hykes l’a décrit dans son discours PyCon, les conteneurs sont « des unités autonomes de logiciels que vous pouvez livrer d’un serveur là-bas à un serveur là-bas, de votre ordinateur portable à EC2 à un serveur géant bare-metal, et il fonctionnera dans de la même manière car il est isolé au niveau du processus et possède son propre système de fichiers.

En simplifiant ce processus, Docker s’est rapidement rapproché d’une norme de facto de l’industrie pour les conteneurs. Docker permet aux développeurs de déployer, répliquer, déplacer et sauvegarder une charge de travail de manière simplifiée, en utilisant un ensemble d’images réutilisables pour rendre les charges de travail plus portables et flexibles que les méthodes précédentes autorisées.

Dans le monde des machines virtuelles (VM), cela pourrait être fait en gardant les applications séparées tout en s’exécutant sur le même matériel, mais dans ce monde, chaque VM nécessite son propre système d’exploitation, ce qui signifie qu’elles sont généralement volumineuses, lentes à démarrer, difficiles à déplacer autour, et encombrants à entretenir et à mettre à niveau. Là où les conteneurs ont marqué un changement défini par rapport à l’ère des machines virtuelles, c’était en isolant les environnements d’exécution tout en partageant le noyau du système d’exploitation sous-jacent, offrant une option légère et rapide aux développeurs.

Docker : les pièces détachées

Docker a pris son envol avec les développeurs de logiciels car il a trouvé une nouvelle façon d’emballer les outils nécessaires pour créer et lancer un conteneur d’une manière plus rationalisée et simplifiée qu’auparavant. Décomposé en ses composants, Docker comprend Dockerfile, des images de conteneur, l’utilitaire d’exécution Docker, Docker Hub, Docker Engine, Docker Compose et Docker Desktop.

Dockerfile.

Chaque conteneur Docker commence par un Dockerfile. Ce fichier texte fournit un ensemble d’instructions pour créer une image Docker, y compris le système d’exploitation, les langues, les variables d’environnement, les emplacements de fichiers, les ports réseau et tout autre composant dont il a besoin pour fonctionner.

Image Docker.

Semblable à un instantané dans le monde des machines virtuelles, une image Docker est un fichier exécutable portable, en lecture seule, contenant les instructions de création d’un conteneur et les spécifications pour les composants logiciels que le conteneur s’exécutera et comment.

Utilitaire d’exécution de Docker.

L’utilitaire d’exécution de Docker est la commande qui lance un conteneur. Chaque conteneur est une instance d’une image et plusieurs instances de la même image peuvent être exécutées simultanément.

Docker Hub.

Docker Hub est un référentiel où les images de conteneurs peuvent être stockées, partagées et gérées. Considérez-le comme la propre version de Docker de GitHub, mais spécifiquement pour les conteneurs.

Moteur Docker.

Docker Engine est le cœur de Docker. C’est la technologie client-serveur sous-jacente qui crée et exécute les conteneurs. Le moteur Docker comprend un processus démon de longue durée appelé dockerd pour la gestion des conteneurs, des API qui permettent aux programmes de communiquer avec le démon Docker et une interface de ligne de commande.

Docker Compose.

Docker Compose est un outil de ligne de commande qui utilise des fichiers YAML pour définir et exécuter des applications Docker multi-conteneurs. Il vous permet de créer, démarrer, arrêter et reconstruire tous les services à partir de votre configuration et d’afficher l’état et la sortie du journal de tous les services en cours d’exécution.

Bureau Docker.

Tous ces composants sont intégrés dans l’application Docker’s Desktop, offrant un moyen convivial de créer et de partager des applications et des microservices conteneurisés.

Avantages de Docker

Les conteneurs Docker offrent un moyen de créer des applications plus faciles à assembler, à maintenir et à déplacer que les méthodes précédentes autorisées. Cela offre plusieurs avantages aux développeurs de logiciels.

Les conteneurs Docker sont minimalistes et permettent la portabilité. Docker permet aux applications et à leurs environnements de rester propres et minimalistes en les isolant, ce qui permet un contrôle plus granulaire et une plus grande portabilité.

Les conteneurs Docker permettent la composabilité. Les conteneurs permettent aux développeurs de composer plus facilement les blocs de construction d’une application en une unité modulaire avec des pièces facilement interchangeables, ce qui peut accélérer les cycles de développement, les versions de fonctionnalités et les corrections de bogues.

Les conteneurs Docker facilitent l’orchestration et la mise à l’échelle. Parce que les conteneurs sont légers, les développeurs peuvent en lancer beaucoup pour une meilleure mise à l’échelle des services. Ces clusters de conteneurs doivent ensuite être orchestrés, c’est là qu’intervient généralement Kubernetes .

Inconvénients de Docker

Les conteneurs résolvent un grand nombre de problèmes, mais ils ne résolvent pas tous les maux des développeurs.

Les conteneurs Docker ne sont pas des machines virtuelles. Contrairement aux machines virtuelles, les conteneurs utilisent des portions contrôlées des ressources du système d’exploitation hôte, ce qui signifie que les éléments ne sont pas aussi strictement isolés qu’ils le seraient sur une machine virtuelle.

Les conteneurs Docker ne fournissent pas une vitesse sans système d’exploitation. Les conteneurs sont nettement plus légers et plus proches du métal que les machines virtuelles, mais ils entraînent une surcharge de performances. Si votre charge de travail nécessite une vitesse à toute épreuve, un conteneur vous rapprochera mais pas tout le chemin.

Les conteneurs Docker sont apatrides et immuables. Les conteneurs démarrent et s’exécutent à partir d’une image qui décrit leur contenu. Cette image est immuable par défaut : une fois créée, elle ne change pas. Mais une instance de conteneur est transitoire. Lorsqu’il est supprimé de la mémoire système, il disparaît pour toujours. Si vous souhaitez que vos conteneurs persistent dans l’état d’une session à l’autre, comme une machine virtuelle, vous devez concevoir pour cette persistance.

Qu’est-ce que Docker aujourd’hui ?

L’utilisation des conteneurs continue de croître à mesure que les techniques de développement natives du cloud deviennent le modèle dominant pour la création et l’exécution de logiciels, mais Docker n’est plus qu’une partie de ce puzzle.

Docker est devenu courant en facilitant le déplacement du code d’une application et de toutes ses dépendances de l’ordinateur portable du développeur vers un serveur. Mais l’essor des conteneurs a entraîné un changement dans la façon dont les applications sont construites, des piles monolithiques aux réseaux de microservices. Bientôt, de nombreux utilisateurs ont eu besoin d’un moyen d’orchestrer et de gérer des groupes de conteneurs à grande échelle.

Né de Google, le projet open source Kubernetes est rapidement apparu comme le meilleur moyen de le faire, remplaçant les propres tentatives de Docker pour résoudre ce problème avec son orchestrateur Swarm ( RIP ). Au milieu de problèmes de financement croissants, Docker a finalement vendu ses activités d’entreprise à Mirantis en 2019, qui a depuis absorbé Docker Enterprise dans le moteur Mirantis Kubernetes.

Les restes de Docker, qui comprennent l’environnement d’exécution original du conteneur Docker Engine open source, le référentiel d’images Docker Hub et l’application Docker Desktop, continuent de vivre sous la direction du vétéran de l’entreprise Scott Johnston, qui cherche à réorienter l’entreprise autour de sa base de clients principale de développeurs de logiciels.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *