158 votes

Qu'est-ce que docker.io par rapport à docker-ce et docker-ee (désormais appelé "Mirantis Kubernetes Engine") ?

Auparavant, pour installer Docker, je devais utiliser

apt-get install docker.io

Cependant, j'ai récemment remarqué la documentation pour l'installation de Docker, et elle utilise docker-ce. J'ai essayé de trouver la différence entre les deux, mais je n'ai rien trouvé. Qu'est-ce que docker.io par rapport à docker-ce ?

1 votes

@zerkms J'étais confus car le site officiel de docker ne mentionne pas docker.io. Est-il déprécié ?

3 votes

docker.io est maintenu par les développeurs d'ubuntu. Les développeurs Ubuntu ne sont pas affiliés au "site officiel de docker". Ainsi, le fait que le site Web de Docker n'y fasse pas référence ne signifie pas grand-chose.

2 votes

@zerkmsEst-ce que docker.io est à jour ?

182voto

Lutz Prechelt Points 470

Méfiez-vous de docker-ce

La réponse acceptée est "sous-complexe".

docker-ce est fourni par docker.com, docker.io est fourni par Debian.

En apparence, cela signifie que vous pouvez installer docker.io tout de suite, tandis que pour docker-ce vous devez attacher un dépôt externe de docker.com avant les mains.

Plus important encore, bien que les deux paquets fournissent des versions correctement publiées de Docker, ils présentent une différence de taille. structure interne très différente :

  • docker.io le fait à la manière de Debian (ou Ubuntu) : Chaque dépendance externe est un paquet séparé qui peuvent être et seront mis à jour indépendamment.
  • docker-ce le fait à la manière de Golang : Toutes les dépendances sont tirées dans le fuente arbre avant la construction et le tout forme un seul paquet après. Ainsi, vous mettez toujours à jour docker avec toutes ses dépendances en une seule fois.

Le problème de cette dernière approche est qu'elle va à l'encontre d'une grande partie de ce que Debian/Ubuntu essaie de faire.

Si tout le monde le faisait de la manière docker-ce fait...

...vous auriez 174 versions de nombreuses bibliothèques sur votre système, ce qui non seulement consomme beaucoup de mémoire, mais rend également pratiquement impossible de décider si vous avez cette version 7.6.5 de la bibliothèque XYZ avec cette horrible une vulnérabilité de sécurité quelque part parmi eux.
Sans parler de fermer cette vulnérabilité (ou les 109 instances que vous avez).

Pire encore, l'une des 174 versions est probablement la version 5.4.3 de XYZ d'il y a trois ans, qui présentait une autre vulnérabilité de sécurité, très différente mais tout aussi flagrante, que le monde a depuis longtemps oubliée mais qui existe toujours sur votre système.

Quelques remarques :

  • De nombreuses pages web appellent docker.io "dépassée". C'est parce qu'il n'a pas été entretenu pendant environ un an. À partir d'août 2019, ce n'est plus le cas.
  • J'ai appris tout ça aujourd'hui aquí et passera désormais de l'utilisation de docker-ce à l'utilisation docker.io -- et sans doute ne plus jamais y retourner.
  • Il y a une raison pour laquelle le système de paquets de Debian/Ubuntu est si compliqué. Une bonne raison.

Edit : Comme BobHy le fait remarquer dans un commentaire, les docker-ce approche a également un avantage : elle est moins susceptible d'avoir des problèmes de compatibilité avec la bibliothèque XYZ. Il faut savoir doser les risques.

96voto

lvolmar Points 1179

Les anciennes versions du binaire Docker étaient appelées docker, docker-engine ou docker-io.

docker-io est toujours le nom utilisé par Debian/Ubuntu pour la version de docker fournie sur leur site web dépôts officiels .

docker-ce est une version certifiée fournie directement par docker.com et peut également être construit à partir de la source .

La raison principale de l'utilisation du nom docker-io sur la plateforme Debian/Ubuntu était d'éviter un conflit de nom avec le binaire docker system-tray.

http://manpages.ubuntu.com/manpages/precise/man1/docker.1.html

Docker dispose d'une version entreprise (EE) et d'une version communautaire gratuite (CE).

Avant d'installer Docker Community Edition (docker-ce de docker.com), vous devrez peut-être supprimer les anciens binaires.

Centos/RHL :

https://docs.docker.com/engine/installation/linux/docker-ce/centos/

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Ubuntu/Debian :

https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Comparaison à sec sur ubuntu :

$ sudo apt-get install docker.io --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  bridge-utils cgroupfs-mount containerd pigz runc ubuntu-fan
Suggested packages:
  ifupdown aufs-tools debootstrap docker-doc rinse zfs-fuse | zfsutils
The following NEW packages will be installed:
  bridge-utils cgroupfs-mount containerd docker.io pigz runc ubuntu-fan
0 upgraded, 7 newly installed, 0 to remove and 70 not upgraded.
Inst pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Inst bridge-utils (1.5-15ubuntu1 Ubuntu:18.04/bionic [amd64])
Inst cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Inst runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst containerd (1.2.6-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst docker.io (18.09.7-0ubuntu1~18.04.4 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst ubuntu-fan (0.12.10 Ubuntu:18.04/bionic [all])
Conf pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Conf bridge-utils (1.5-15ubuntu1 Ubuntu:18.04/bionic [amd64])
Conf cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Conf runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf containerd (1.2.6-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf docker.io (18.09.7-0ubuntu1~18.04.4 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf ubuntu-fan (0.12.10 Ubuntu:18.04/bionic [all])

$ sudo apt-get install docker-ce --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce-cli libltdl7 pigz
The following NEW packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli libltdl7 pigz
0 upgraded, 7 newly installed, 0 to remove and 70 not upgraded.
Inst pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Inst aufs-tools (1:4.9+20170918-1ubuntu1 Ubuntu:18.04/bionic [amd64])
Inst cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Inst containerd.io (1.2.10-3 Docker CE:bionic [amd64])
Inst docker-ce-cli (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst docker-ce (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst libltdl7 (2.4.6-2 Ubuntu:18.04/bionic [amd64])
Conf pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Conf aufs-tools (1:4.9+20170918-1ubuntu1 Ubuntu:18.04/bionic [amd64])
Conf cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Conf containerd.io (1.2.10-3 Docker CE:bionic [amd64])
Conf docker-ce-cli (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf docker-ce (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf libltdl7 (2.4.6-2 Ubuntu:18.04/bionic [amd64])

Le site binaires docker-ce auront tendance à être les dernières versions et à inclure docker-ce-cli.

1 votes

@Ivolmar Merci beaucoup, il serait donc idiot d'utiliser docker.io plutôt que l'un des plus récents alors ?

3 votes

@WillParzybok Correct. En fonction de votre version de Debian ou Ubuntu, vous devriez pouvoir installer la nouvelle version CE et supprimer les binaires de l'ancienne version.

0 votes

J'aurais aimé voir votre commentaire avant d'installer docker.io :-)

0voto

F1Linux Points 129

Docker Enterprise est maintenant Moteur Kubernetes de Mirantis :

Les autres réponses ont été écrites avant Docker a vendu ses actifs d'entreprise à Mirantis . Et de grands changements ont découlé de cette acquisition...

Si vous visitez maintenant le lien pour " Enterprise Edition "- https://docs.docker.com/ee/ - vous trouverez Oogatz. C'est parce que " Docker Enterprise "devient " Moteur Kubernetes de Mirantis "

L'avenir de Swarm :

Avec l'adoption de Kubernetes et l'achat par Mirantis des actifs de Docker pour les entreprises, l'avenir de l'industrie de l'informatique est en train de se dessiner. essaim était dans le doute. Cependant, l'avenir de essaim L'orchestration des conteneurs semble désormais plus certaine, puisqu'il s'agit d'une fonctionnalité majeure de la version 3.5 du moteur Kubernetes de Mirantis. article de blog qui stipule :

" ...les clients ont parlé - et beaucoup d'entre eux sont complètement satisfaits en utilisant Swarm au lieu de Kubernetes pour l'orchestration des conteneurs. Avec Dans cette optique, nous sommes heureux d'annoncer le mode Swarm-only : une nouvelle option de option de configuration du moteur Mirantis Kubernetes qui permet de dédier la plateforme exclusivement à l'orchestration Swarm et aux conteneurs Docker. "

Donc, pour la planification d'entreprise, cela ressemble à essaim a un avenir dans un monde Kubernetes.

Mais ce ne sont pas tous les changements de Mirantis...

Docker CE Maintenant développé (principalement) par une tierce partie :

Efficace avec le Version v20.10 sur 20201209, Docker CE est maintenant le produit de DEUX Projets séparés sur Github :

Donc à partir de la version 20.10, Le projet Moby va maintenant faire le travail fastidieux de développer Docker CE alors que Mirantis cherche à monétiser Moteur Kubernetes de Mirantis . Ne vous plaignez pas : Mirantis est une entreprise après tout et elle doit faire des bénéfices ; il n'y a pas de surprise.

Le site docker-cli partie de Docker CE est toutefois toujours en cours de développement par Docker. Évidemment, le docker-cli est intéressante et ils ont gardé cette partie en interne...

Conclusion :

Après qu'IBM ait acheté Red Hat et CentOS a été supprimé, j'imagine que les organisations qui dépendent de la conteneurisation de Docker ont des préoccupations similaires quant à l'avenir de Docker CE après l'acquisition de Mirantis. Il semble que le projet Moby pourrait prendre le relais étaient Mirantis pour retirer leurs (5) développeurs. Mais cela conduirait finalement à une bifurcation de Docker et à un développement prenant des chemins divergents.

Red Hat a employé les gens du projet CentOs ( vous n'étiez pas au courant ? ), ils ont donc toujours été tenus de suivre la direction que RH leur donnait. Je ne sais pas si Docker emploie ou paie les 22/27 autres développeurs de Moby. Il pourrait y avoir d'autres changements importants à l'avenir pour le paysage Docker, étant donné les pressions commerciales que subit Mirantis pour faire de Docker une acquisition rentable, ce qui rend difficile la planification des décisions commerciales sur le paysage actuel...

0voto

BMitch Points 3744

Docker.io

Il est fourni par la distribution Linux. Ils compilent eux-mêmes le moteur docker amont, et ajoutent du code spécifique à la distribution, principalement aux scripts de démarrage. Ce nom a été choisi parce que docker était déjà pris par un projet sans rapport. De plus, Debian a actuellement quelques autres paquets apparentés :

  • docker-doc : La documentation qui est emballée séparément.
  • sans racines : Pour exécuter le moteur Docker sans l'utilisateur Root.
  • docker-compose : C'est une bonne chose à avoir depuis que Docker Inc empaquetait compose, mais cela change avec la version 2 de compose qui est écrite en Go et incluse directement dans le CLI de docker.
  • docker-registry : Empaquetage autonome d'un serveur de registre, bien que le cas d'utilisation ne soit pas clair puisque presque tout le monde l'exécute en tant que conteneur à partir de l'application registry:2 image.
  • les aides à l'accréditation : Il existe plusieurs paquets pour ceux-ci, et peuvent être utiles si vous vous authentifiez auprès d'un fournisseur de cloud pour votre registre.

docker-ce

Il s'agit de l'édition communautaire, c'est-à-dire la version OSS de Docker Inc. C'est ce à quoi la plupart des gens pensent lorsqu'ils installent Docker sur Linux. En outre, les éléments suivants sont actuellement disponibles sur les dépôts de Docker :

  • docker-ce-cli : vous pouvez installer uniquement la ligne de commande sans le moteur, et l'utiliser pour accéder à distance aux moteurs docker sur d'autres hôtes.
  • docker-ce-rootless-extras : Il y a eu beaucoup d'efforts pour activer le support rootless dans les versions récentes de docker, de sorte que vous pouvez exécuter le moteur en tant qu'utilisateur au lieu de Root.
  • docker-scan-plugin : Il s'agit d'un scanner de vulnérabilité que vous pouvez utiliser pour vos images.

Instructions pour l'installation docker-ce sont disponibles auprès de Site web de Docker .

docker-ee

Il s'agit de l'édition Enterprise, et d'une partie de Docker Inc. qui a été vendue à Mirantis. Il y avait (je ne l'ai pas suivi de près depuis la séparation) quelques fonctionnalités supplémentaires compilées dans cette version, mais les deux principales raisons d'installer cette version étaient le support du vendeur (payant) et son utilisation comme base pour d'autres offres commerciales comme l'UCP et le DTR, qui étaient les interfaces utilisateur au-dessus de Swarm/Kubernetes et un serveur de registre. À moins de travailler avec les ventes de Mirantis et d'avoir une clé de licence, je ne pense pas qu'il y ait de raison d'installer cette version.

Choisir entre docker.io et docker-ce

La principale décision est de savoir s'il faut installer la version OSS de Docker à partir de votre distribution Linux ou directement à partir de Docker Inc. Quelques points à considérer :

  • Documentation sur https://docs.docker.com sera axé sur docker-ce.
  • Le support pour les problèmes de Docker Inc. vous demandera d'avoir installé leur version. Ce n'est que justice si vous êtes un développeur qui conditionne le produit, et que vous voulez seulement supporter votre propre conditionnement.
  • Les correctifs et les nouvelles versions seront disponibles sur docker-ce avant docker.io. Cela peut être important pour les problèmes de sécurité sensibles au facteur temps.
  • L'installation de docker-ce nécessite l'ajout d'un autre dépôt à votre sources.list, ce qui représente un fournisseur de plus à qui faire confiance, et une liste de paquets de plus à mettre à jour avec chaque correctif.
  • Si vous ne voulez que le CLI pour accéder à Docker sur des machines distantes (par ex. DOCKER_HOST=ssh://you@example.com docker ps ), vous voudrez utiliser l'option docker-ce-cli paquet.

En ce qui me concerne, si vous configurez une machine dédiée à l'exécution de conteneurs, optez pour la solution suivante docker-ce . Si vous n'exécutez qu'un conteneur occasionnel, ne suivez pas ce que fait Docker Inc. en amont et utilisez la machine pour de nombreuses autres tâches, l'utilisation de docker.io peut simplifier vos flux de travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X