web-dev-qa-db-fra.com

Quel est le lien entre docker.io et docker-ce et docker-ee?

Auparavant, j'utilisais docker

apt-get install docker.io

Cependant, j'ai récemment remarqué la documentation d'installation de docker, qui utilise docker-ce. J'ai essayé de trouver la différence entre les deux, mais je suis resté vide. Quel est docker.io par rapport à docker-ce?

59
Will Parzybok

Les anciennes versions de Docker s'appelaient docker ou docker-engine ou docker.io

le paquet docker-io était le nom utilisé sous Debian/Ubuntu pour la version officielle du menu fixe.

La raison principale était d'éviter un conflit de nom avec le binaire système-bac d'Ubuntu docker.

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

Docker a maintenant une version entreprise (EE) et une version gratuite de la communauté Edition (CE)

Avant d'installer Docker Community Edition, vous devez supprimer les anciens fichiers binaires.

Centos/RHL:

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

$ Sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

Ubuntu/Debian:

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

$ Sudo apt-get remove docker docker-engine docker.io
57
lvolmar

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 surface, cela signifie que vous pouvez installer docker.io de suite, alors que pour docker-ce, vous devez au préalable attacher un référentiel externe à partir de docker.com.

Plus important encore, bien que les deux paquetages fournissent des versions correctement publiées de Docker, ils ont une structure interne très différente :

  • docker.io le fait à la manière Debian (ou Ubuntu): Chaque dépendance externe est un paquetage séparé qui peut et sera mis à jour indépendamment.
  • docker-ce le fait-il selon Golang: Toutes les dépendances sont extraites dans l'arborescence source avant la construction et le tout forme un seul paquet après. Vous devez donc toujours mettre à jour le menu fixe avec toutes ses dépendances en même temps.

Le problème avec cette dernière approche est qu’elle va à l’encontre de ce que Debian/Ubuntu essaie de faire.

Si tout le monde faisait comme docker-ce.

... vous auriez 174 versions de nombreuses bibliothèques sur votre système, ce qui non seulement consomme beaucoup de mémoire, mais il est également impossible de décider si vous avez la version 7.6.5 de la bibliothèque XYZ avec cela horrible vulnérabilité de sécurité quelque part parmi eux.
Laisse seul fermer cette vulnérabilité (ou l’ensemble de vos 109 instances).

Pire encore, l'une des 174 versions serait probablement la version 5.4.3 de XYZ il y a trois ans, qui comportait une autre vulnérabilité de sécurité très différente, mais tout aussi béante, que le monde a depuis longtemps oubliée, mais qui existera toujours avec bonheur sur votre système.

Quelques remarques:

  • De nombreuses pages Web appellent docker.io "obsolète". C'est parce qu'il n'a pas été maintenu pendant environ un an. Ce n'est plus le cas.
  • J'ai appris tout cela aujourd'hui ici et je vais maintenant utiliser docker-ce pour utiliser docker.io.
  • Il y a une raison pour laquelle le système de packaging Debian/Ubuntu est si compliqué. Une bonne raison.
1
Lutz Prechelt