paint-brush
5 alternatives de bureau Dockerpar@ChrisChinchilla
26,933 lectures
26,933 lectures

5 alternatives de bureau Docker

par Chris Chinchilla5m2022/12/28
Read on Terminal Reader

Trop long; Pour lire

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.
featured image - 5 alternatives de bureau Docker
Chris Chinchilla HackerNoon profile picture

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 « Open Container Initiative » (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, Podman 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 :


  1. Par défaut, vous utilisez podman au lieu de Docker, mais vous pouvez créer un alias et oublier ce changement de commande.
  2. 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, " docker.io/library/busybox ".


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 Podman Desktop , 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, Colima utilise Lima 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, Rancher Desktop 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, il prend également en charge les conteneurs . 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à Parallels Desktop 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?