Il existe des logiciels similaires à Docker : 1. Podman, qui est un moteur de conteneur natif Linux open source sans démon ; 2. LXD, qui est un moteur de conteneur open source conçu spécifiquement pour les conteneurs Linux LXC ; Red Hat's Un outil de création d'images OCI développé pour les systèmes conteneurisés 4. RunC, etc.
L'environnement d'exploitation de ce tutoriel : système linux7.3, version docker20, ordinateur Dell G3.
Il existe un logiciel similaire à Docker.
Docker est né en 2013 et a popularisé le concept de conteneurs, à tel point que la plupart des gens assimilent encore le concept de conteneurs aux « conteneurs Docker ».
En tant que premier à adopter la technologie, Docker fixe les normes auxquelles les nouveaux entrants doivent adhérer. Par exemple, Docker dispose d'une grande bibliothèque d'images système. Toutes les alternatives doivent utiliser le même format d'image tout en essayant de modifier une ou plusieurs parties de la pile entière sur laquelle Docker est basé.
Pendant cette période, de nouvelles normes de conteneurs ont émergé et l'écosystème des conteneurs s'est développé dans des directions différentes. De nos jours, il existe de nombreuses façons d'utiliser les conteneurs en plus de Docker.
Logiciel de gestion de conteneurs de type Docker
1 Podman
Podman est un moteur de conteneur natif Linux open source sans démon développé par RedHat, utilisé pour créer, exécuter et gérer des conteneurs Linux OCI. avec des images de conteneurs. Bien que Podman fournisse une interface de ligne de commande similaire à Docker, elle ne fonctionne pas de la même manière.
Une différence significative entre Docker et Podman est que Docker exécute un runtime persistant et autosuffisant pour gérer ses objets ou son démon appelé dockerd ; tandis que Podman ne s'appuie pas sur un démon pour fonctionner, Podman le fera. Le conteneur est démarré en tant qu'enfant ; processus, et il interagit également directement avec le registre et le noyau Linux à l'aide de processus d'exécution, c'est pourquoi Podman est appelé une technologie de conteneur sans démon.
L'absence de démon augmente la flexibilité de Podman en tant que moteur de conteneur et élimine la dépendance à l'égard d'un seul processus. Une autre grande différence entre Podman et Docker est qu'ils ne nécessitent pas de privilèges root. Cette fonctionnalité fournit un tampon de sécurité supplémentaire, limitant certains processus potentiellement dangereux qui pourraient manipuler les paramètres critiques du système et rendre vulnérables le conteneur et les applications contenues.
De plus, Podman peut exécuter des pods - des collections d'un ou plusieurs conteneurs, gérées comme une seule entité et utilisant un pool de ressources partagé. Grâce à cette fonctionnalité, les utilisateurs de Podman peuvent déplacer leurs charges de travail vers Kubernetes.
2, LXD
LXD est un moteur de conteneur open source conçu spécifiquement pour les conteneurs Linux LXC. LXC permet aux utilisateurs d'exécuter des applications dans des conteneurs isolés ou des environnements virtuels similaires à des machines virtuelles sans la charge technique liée à la gestion de cœurs individuels. LXD fournit une interface avec la bibliothèque logicielle LXC et crée un processus démon qui gère la mise en réseau, le stockage des données et la gestion de plusieurs conteneurs LXC. Bien que LXC puisse être exécuté en tant qu'outil autonome, ses fonctionnalités sont limitées. LXD fournit ces fonctionnalités supplémentaires et s'appuie donc sur LXC pour fonctionner.
Les principales différences entre LXD et Docker sont les suivantes. Contrairement au modèle de conception de Docker qui recommande un seul processus par conteneur, les conteneurs dans LXC/LXD peuvent exécuter plusieurs processus. De plus, les conteneurs Docker sont plus portables et extraient efficacement les ressources par rapport à LXD. Enfin, Docker prend en charge l'exécution sur les environnements Windows et macOS, mais LXD ne prend en charge que Linux.
3. containersd
containerd est un environnement d'exécution de conteneur avancé qui fournit une interface entre le système d'exploitation et le moteur de conteneur en exécutant runc en bas. runc est un démon pris en charge sur Windows et Linux qui résume les fonctionnalités spécifiques au système d'exploitation pour faciliter l'exécution et la supervision des conteneurs et la gestion des transferts et du stockage d'images.
Ce niveau d'abstraction fourni par containers élimine la complexité liée à l'exécution de plusieurs appels système de bas niveau, permettant la portabilité des conteneurs. Cependant, contrairement à Docker, containersd ne gère pas la création d’images ni la création de volumes. Fait intéressant, containersd était le moteur d'exécution par défaut de Docker et est désormais un outil autonome, tout comme runc. Cela fait également de containers un outil d’orchestration pratique comme Kubernetes, l’une des alternatives Docker les plus populaires.
4. Buildah
Buildah est un outil de création d'images OCI développé par la Red Hat Foundation pour les systèmes conteneurisés. Il s'agit d'un outil qui fournit des fonctionnalités similaires à l'exécution de « docker build » dans Docker. Buildah est souvent utilisé avec Podman pour se compléter. Par exemple, Podman utilise un sous-ensemble de fonctionnalités Buildah sous le capot pour implémenter son processus de construction.
Il peut créer des images à partir de Dockerfile ou Containerfile et produire les mêmes images que celles créées avec Docker car ces images sont conformes à OCI. De plus, il offre un contrôle précis sur les calques d’image, permettant ainsi plusieurs validations de modifications sur un seul calque. Il offre également la possibilité de créer une image à partir de zéro, une image qui ne contient aucun contenu, ce qui donne aux utilisateurs la liberté d'ajouter uniquement les packages nécessaires à l'exécution de l'application. Enfin, contrairement à Docker, dans Buildah, les utilisateurs ne peuvent voir que les images qu'ils créent.
5, BuildKit
BuildKit est un projet Moby de deuxième génération qui crée des images et est disponible en tant que fonctionnalité expérimentale dans les versions plus récentes de Docker. Comme Docker, il s'exécute à l'aide d'un démon. Cependant, l'une des principales différences entre les versions Docker standard et BuildKit est que la première construit couche par couche, tandis que la seconde fournit un traitement de construction parallèle. Cette fonctionnalité améliore les performances et accélère les builds. BuildKit permet également d'ignorer les étapes inutilisées, d'améliorer les builds incrémentielles et d'autoriser les builds sans racine. De plus, BuildKit utilise un cache pour réduire le besoin de reconstruire chaque couche de l'image.
6. Kaniko
Kaniko est un outil de création d'images Google qui peut créer des images à partir de Dockerfiles. Il est sans démon comme Buildah, mais se concentre davantage sur la création d'images dans Kubernetes. Kaniko n'est pas très pratique pour les instances de développement locales car il est généralement exécuté en tant qu'image avec un orchestrateur de conteneurs tel que Kubernetes. Kaniko peut être un outil utile pour les pipelines d'intégration et de livraison continue dans les clusters Kubernetes.
7, RunC
RunC était auparavant un module intégré à l'architecture Docker et a été publié en tant qu'outil autonome en 2015. Depuis, il est devenu un environnement d’exécution de conteneur largement utilisé, standardisé et interopérable. Les équipes DevOps peuvent l'utiliser dans le cadre de Docker ou d'autres moteurs de conteneurs personnalisés. RunC appartient à la partie d'exécution du conteneur de l'écosystème de conteneurisation. Le runtime du conteneur est le composant de niveau inférieur utilisé dans le moteur de conteneur qui gère l'exécution du conteneur.
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!