Dans Docker, les conteneurs fournissent un mécanisme efficace pour combiner les composants dans des piles d'applications et de services et maintenir les composants logiciels à jour et maintenus ; les conteneurs Docker sont non seulement isolés les uns des autres, mais également du système sous-jacent, et ils peuvent fonctionner sur n'importe quelle machine. qui prend en charge les environnements d'exécution de conteneurs.
L'environnement d'exploitation de ce tutoriel : système linux7.3, version docker-1.13.1, ordinateur Dell G3.
L'un des objectifs du développement logiciel moderne est que les applications puissent toutes deux s'exécuter sur le même hôte ou cluster et être isolées les unes des autres afin qu'elles n'interfèrent pas indûment avec les opérations ou la maintenance de l'autre. , Mais cela devient plus difficile en raison de la nécessité d'exécuter des packages, des bibliothèques et d'autres composants logiciels.
Une solution à ce problème consiste à utiliser une machine virtuelle, qui isole complètement les applications sur le même matériel et minimise les conflits entre les composants logiciels et la concurrence entre les ressources matérielles. Cependant, la machine virtuelle est de taille relativement grande, chaque machine virtuelle nécessite son. propre système d'exploitation, il a donc généralement une taille de Go et est difficile à maintenir et à mettre à niveau.
Contrairement aux machines virtuelles, les conteneurs isolent les environnements d'exécution des applications les uns des autres mais partagent le noyau du système d'exploitation sous-jacent. Ils sont généralement mesurés en mégaoctets, utilisent beaucoup moins de ressources que les machines virtuelles et démarrent presque instantanément. Il est possible d'effectuer un regroupement plus dense sur le même matériel sans trop d'efforts ni de frais généraux.
Les conteneurs fournissent un mécanisme efficace et hautement granulaire pour combiner des composants logiciels dans les différentes piles d'applications et de services requises par les entreprises modernes, et pour maintenir ces composants logiciels à jour et maintenus.
Docker est un projet open source qui facilite la création de conteneurs et d'applications basées sur des conteneurs. Initialement conçu pour Linux, il fonctionne désormais également sous Windows et MacOS.
Docker a toujours été en mesure d'aider les développeurs à créer rapidement des conteneurs logiciels légers et portables, simplifiant ainsi le développement, les tests, le déploiement d'applications et bien d'autres aspects. Plus précisément, il s'agit d'une plate-forme logicielle permettant de créer des applications qui fournit un environnement d'exécution petit et léger qui partage le noyau du système d'exploitation mais s'exécute par ailleurs de manière indépendante.
Bien que le concept de conteneurs existe depuis longtemps, le projet open source Docker lancé en 2013 a largement contribué à populariser cette technologie et à promouvoir la tendance de la conteneurisation et des microservices dans le développement de logiciels, plus tard connu sous le nom de développement cloud natif.
Les conteneurs Docker offrent un moyen de créer des applications d'entreprise et des applications de processus métier plus faciles à installer, à maintenir et à déplacer que les applications traditionnelles.
Les conteneurs Docker prennent en charge l'isolation : les conteneurs Docker permettent d'isoler les applications non seulement les unes des autres, mais également du système sous-jacent. Cela rend non seulement la pile logicielle plus propre, mais permet également aux applications conteneurisées d'utiliser plus facilement les ressources système telles que le CPU, le GPU, la mémoire, les E/S, le réseau, etc. Cela garantit également que les données et le code restent indépendants.
Les conteneurs Docker prennent en charge la portabilité : les conteneurs Docker s'exécutent sur n'importe quelle machine prenant en charge l'environnement d'exécution des conteneurs. Les applications n'ont pas besoin d'être liées au système d'exploitation hôte, de sorte que l'environnement d'application et l'environnement d'exploitation sous-jacent peuvent rester propres et minimaux.
Par exemple, MySQL conteneurisé fonctionnera sur la plupart des systèmes Linux prenant en charge les conteneurs, et toutes les dépendances de l'application sont généralement fournies dans le même conteneur. Les applications basées sur des conteneurs peuvent être facilement déplacées d'un système sur site vers un environnement cloud, ou de l'ordinateur portable d'un développeur vers un serveur, à condition que le système cible prenne en charge Docker et tous les outils tiers pouvant être utilisés avec celui-ci, tels que comme Kubernetes.
En règle générale, les images de conteneurs Docker doivent être créées pour une plate-forme spécifique. Par exemple, les conteneurs Windows ne peuvent pas fonctionner sous Linux, et vice versa ; auparavant, une façon de contourner cette limitation consistait à lancer une machine virtuelle exécutant une instance du système d'exploitation souhaité et à exécuter le conteneur dans la machine virtuelle.
Cependant, l'équipe Docker a ensuite conçu une solution plus élégante appelée manifest, qui permet de regrouper en parallèle des images de plusieurs systèmes d'exploitation. Bien que le manifeste soit encore au stade expérimental, il laisse entendre que les conteneurs pourraient devenir une solution d’application multiplateforme et une solution d’application multi-environnement.
Les conteneurs Docker permettent la composabilité : la plupart des applications métiers sont composées de plusieurs composants indépendants, serveurs web, bases de données et caches. Les conteneurs Docker peuvent combiner ces composants en une unité fonctionnelle facilement remplaçable. Chaque pièce est desservie par un conteneur différent et peut être entretenue, mise à jour, échangée et modifiée indépendamment des autres conteneurs.
Il s'agit essentiellement du modèle de microservices pour la conception d'applications. En divisant les fonctionnalités de l'application en services indépendants et autonomes, le modèle de microservices fournit une solution au processus lent du développement traditionnel et aux applications rigides monolithiques qui facilitent la création et la maintenance d'applications basées sur des microservices.
Les conteneurs Docker simplifient l'orchestration et la mise à l'échelle : étant donné que les conteneurs sont légers et entraînent peu de frais généraux, davantage de conteneurs peuvent être lancés sur un système donné, et les conteneurs peuvent également être utilisés pour faire évoluer les applications sur les clusters du système et faire évoluer les services vers le haut ou vers le bas pour répondre aux pics. exiger ou conserver les ressources.
La plupart des versions d'outils d'entreprise pour le déploiement, la gestion et la mise à l'échelle des conteneurs sont fournies via des projets tiers. Le principal d'entre eux est Kubernetes de Google, un système automatisé qui prend en charge le déploiement et la mise à l'échelle des conteneurs, ainsi que la connectivité, l'équilibrage de charge et la gestion des conteneurs. Kubernetes fournit également des moyens de créer et de réutiliser des applications multi-conteneurs ou des « graphiques Helm » afin que des piles d'applications complexes puissent être créées et gérées selon les besoins.
Docker dispose également d'un mode d'orchestration Swarm intégré. Actuellement, ce mode est rarement utilisé et Kubernetes est devenu un choix par défaut. En fait, Kubernetes est fourni avec Docker Enterprise Edition.
Apprentissage recommandé : "Tutoriel vidéo Docker"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!