Pour les utilisateurs de Windows et macOS, Docker Desktop est le principal moyen d'utiliser les conteneurs Docker depuis de nombreuses années. Bien que cela reste une option viable et utilisable pour les amateurs et les petites équipes de développement, les récents changements de prix pour les bases d'utilisateurs plus importantes ont poussé les gens à rechercher des alternatives. Je ne cherche pas à remplacer Docker Desktop moi-même, mais j'étais intéressé à essayer les alternatives et à voir comment elles se comparaient.
Version vidéo de cet article
Vous pouvez trouver une version vidéo de cet article avec plus d'informations pratiques sur l'utilisation de chaque couverture d'outil sur YouTube.
Terminologie
Les conteneurs eux-mêmes ne sont pas un nouveau concept technologique, mais Docker au milieu des années 2000 a popularisé le concept et les a commercialisés de la bonne manière au bon moment pour généraliser le concept.
Cela vaut la peine de séparer Docker l'entreprise de Docker le projet car il est facile de les confondre et ce sont des entités distinctes. En raison de cette confusion, la société Docker a renommé et ouvert un grand nombre de ses technologies liées aux conteneurs, contribuant à ce qui est maintenant connu sous le nom de « » (OCI).
Je résume et résume beaucoup ici, mais lorsque le reste de cet article fait référence à des conteneurs «conformes à l'OCI» et à des termes similaires, considérez-le comme analogue à ce que vous pourriez considérer comme un «conteneur Docker». Tous ces événements et changements se sont produits il y a quelque temps à l'ère de la technologie, mais c'est quand même une source constante de confusion. Tldr… Toutes les options présentées dans cet article peuvent exécuter les mêmes définitions de conteneurs, y compris vos conteneurs préexistants de Docker Desktop ou créés avec un Dockerfile . Autre remarque, les projets font souvent référence aux conteneurs exécutés avec Docker en tant que « dockerd » et « Moby » de manière interchangeable.
1. Podman
Probablement l'alternative la plus populaire, compte de nombreux contributeurs de Red Hat et comme il semble que Red Hat envisage des versions commerciales de Podman, on peut dire sans se tromper qu'il s'agit d'un "projet Red Hat".
Il est disponible pour Windows, macOS et Linux et, comme de nombreux autres outils présentés ici, suit une syntaxe similaire à Docker avec deux mises en garde :
- Par défaut, vous utilisez
podman
au lieu de Docker, mais vous pouvez créer un alias et oublier ce changement de commande. - Docker Desktop suppose par défaut que vous souhaitez utiliser des images de conteneur à partir du hub Docker, alors que toutes les autres alternatives ne font naturellement pas cette hypothèse. Cela signifie que vous devez spécifier le chemin d'accès complet à de nombreuses images que vous pouvez utiliser régulièrement, par exemple, " ".
L'une des principales différences entre Podman et les autres alternatives présentées ici, y compris Docker Desktop, est qu'il est sans démon. Cela signifie que chaque conteneur en cours d'exécution s'exécute comme son propre processus d'exécution, et non via un démon. Si le démon Docker échoue, tous les conteneurs en cours d'exécution échouent, alors qu'avec Podman, seul le conteneur individuel échoue. Cela dit, je n'ai personnellement jamais vu le démon Docker échouer, mais je n'exécute pas de charges de travail de production.
Comme tous les autres outils ici, lors de la première exécution, Podman doit créer une machine virtuelle sur macOS et Windows pour héberger les conteneurs. De plus en plus sur macOS et Windows, cela n'est pas toujours nécessaire, mais pour une compatibilité maximale entre plates-formes (et architectures), cela a du sens. Podman utilise Fedora CoreOS (il y a encore cette connexion Red Hat) et QEMU pour exécuter la machine virtuelle.
Bureau Podman
Le compagnon graphique de Podman est , mais en théorie, il devrait répertorier les images et les conteneurs créés par d'autres runtimes, inc. Comme beaucoup d'autres outils graphiques, il ajoute également des fonctionnalités pour interagir avec Kubernetes, mais je les examinerai dans un prochain article. Il offre peut-être les mêmes fonctionnalités que Docker Desktop, y compris des fonctionnalités dont je n'avais pas réalisé qu'elles suivaient les normes, telles que les extensions, mais il est un peu moins raffiné et manque de certaines des fonctionnalités spécifiques au système d'exploitation proposées par Docker Desktop.
2. Colima
Uniquement disponible pour Linux et macOS, utilise pour activer les machines virtuelles Linux sur macOS. Il prend en charge les runtimes Docker, Containerd et Kubernetes, et dans tous les cas, vous devez installer ce runtime avec Colima. Dans le cas de Docker sur macOS, ce n'est pas complètement identique à Docker Desktop.
Aussi simple que Colima soit à utiliser, le fait que vous ayez toujours besoin d'installer un runtime à côté m'a fait me demander "qu'est-ce que Colima?", Et pour être honnête, la documentation minimale ne le rend pas plus clair. Le slogan est "Exécutions de conteneurs sur macOS (et Linux) avec une configuration minimale", mais cela ne m'explique toujours pas pourquoi j'en ai besoin. Autant que je sache, les principales raisons sont l'utilisation de containerd ou en tant que backend Kubernetes (au lieu de Docker Dkestop, minikube, etc.) et peut-être que la principale raison de la prise en charge de Docker est la rétrocompatibilité.
3. Bureau de l'éleveur
Bien qu'il se présente principalement comme un outil de gestion Kubernetes, propose également certaines fonctionnalités de gestion de conteneurs en dehors de Kubernetes. Il prend en charge les conteneurs exécutés avec containerd ou Docker et offre la plupart des mêmes fonctionnalités que les autres outils graphiques de cette liste. Encore une fois, QEMU fournit la machine virtuelle sur laquelle tout s'exécute, sans possibilité de changer cela. C'est un outil parfaitement décent, et l'une des alternatives les plus matures, mais j'ai tendance à penser qu'il est nécessaire de redémarrer et de réinitialiser la VM souvent lorsque vous apportez des modifications, ce qui est un peu fastidieux.
4. VMware Fusion
Si vous utilisez déjà VMWare Fusion pour exécuter des machines virtuelles Windows et Linux, . Cependant, la fonctionnalité ne fonctionne actuellement qu'avec les Mac à processeur Intel, bien que le programme d'installation installe toujours l'outil CLI et vous donne de faux espoirs.
5. Parallèles
Encore une fois, si vous possédez et utilisez déjà pour les machines virtuelles Linux et Windows, vous pouvez l'utiliser comme backend pour minikube, qui est principalement destiné à l'utilisation de Kubernetes, mais il est adjacent au conteneur, donc je l'inclus comme une sorte d'option .
Ce que j'utilise
Pour l'instant, en tant que contributeur individuel, je suis satisfait de Docker Desktop et j'aime les fonctionnalités supplémentaires qu'il offre pour une intégration plus performante et transparente avec le système d'exploitation hôte.
Si quelque chose changeait pour décourager les gens comme moi aussi, alors je passerais probablement à Podman, peut-être avec Podman Desktop, cela dépendra de l'état du projet à ce moment-là. Et toi?