it-swarm.com.de

Was ist docker.io in Bezug auf docker-ce und docker-ee?

Zuvor, um Docker zu installieren, würde ich verwenden

apt-get install docker.io

Vor kurzem habe ich jedoch die Dokumentation zur Installation von Docker gesehen, die Docker-ce verwendet. Ich habe versucht, den Unterschied zwischen den beiden zu finden, bin aber leer ausgegangen. Was ist docker.io in Bezug auf docker-ce?

59
Will Parzybok

Ältere Versionen von Docker wurden Docker oder Docker-Engine oder docker.io genannt

docker-io package war der Name, der unter Debian/Ubuntu für die offizielle Docker-Veröffentlichung verwendet wurde.

Hauptgrund war, einen Namenskonflikt mit Ubuntu Docker System Tray Binary zu vermeiden.

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

Docker verfügt jetzt über eine Enterprise-Version (EE) und eine kostenlose Community Edition-Version (CE).

Vor der Installation von Docker Community Edition müssen Sie ältere Binärdateien entfernen.

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

Seien Sie vorsichtig Docker-ce

Die akzeptierte Antwort ist zu komplex.

docker-ce Wird von docker.com bereitgestellt, docker.io Wird von Debian bereitgestellt.

Oberflächlich gesehen bedeutet dies, dass Sie docker.io Sofort installieren können, während Sie für docker-ce Zuvor ein externes Repository von docker.com anhängen müssen.

Wichtiger ist jedoch, dass beide Pakete, obwohl sie ordnungsgemäß veröffentlichte Versionen von Docker enthalten, eine sehr unterschiedliche interne Struktur haben :

  • docker.io Macht es auf die Debian (oder Ubuntu) Weise: Jede externe Abhängigkeit ist ein separates Paket , das unabhängig aktualisiert werden kann und wird.
  • docker-ce Macht es wie in Golang: Alle Abhängigkeiten werden vor dem Build in den Baum source gezogen und das Ganze bildet danach ein einziges Paket. Sie aktualisieren Docker also immer auf einmal mit all seinen Abhängigkeiten.

Das Problem mit dem letzteren Ansatz ist, dass es gegen vieles verstößt, was Debian/Ubuntu zu tun versucht.

Wenn alle es so gemacht hätten wie docker-ce ...

... Sie würden 174 Versionen vieler Bibliotheken auf Ihrem System haben, die nicht nur viel Speicher verbrauchen, sondern es auch im Grunde unmöglich machen, zu entscheiden, ob Sie diese Version 7.6.5 der Bibliothek XYZ mit horrible haben Sicherheitslücke irgendwo unter ihnen.
Geschweige denn, Sie schließen diese Sicherheitsanfälligkeit (oder alle 109 Instanzen davon, die Sie haben).

Schlimmer noch, eine der 174 Versionen dürfte vor drei Jahren die Version 5.4.3 von XYZ gewesen sein, die eine andere, sehr unterschiedliche, aber ebenso klaffende Sicherheitslücke hatte, die die Welt längst vergessen hat, die aber weiterhin glücklich bestehen wird auf Ihrem System.

Einige Bemerkungen:

  • Viele Webseiten nennen docker.io "Veraltet". Das liegt daran, dass es ungefähr ein Jahr lang nicht gewartet wurde. Dies ist nicht mehr der Fall.
  • Ich habe das alles heute gelernt hier und werde jetzt von docker-ce Zu docker.io Wechseln.
  • Es gibt einen Grund, warum das Debian/Ubuntu-Paketierungssystem so kompliziert ist. Ein guter Grund.
1
Lutz Prechelt