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

119

Zuvor habe ich Docker verwendet, um zu installieren

apt-get install docker.io

Ich habe jedoch kürzlich die Dokumentation zur Installation von Docker bemerkt und sie verwendet Docker-CE. Ich habe versucht, den Unterschied zwischen den beiden zu finden, bin aber leer ausgegangen. Was ist docker.io in Bezug auf docker-ce?

Will Parzybok
quelle
1
@zerkms Ich war verwirrt, weil auf der offiziellen Docker-Website docker.io nicht erwähnt wird. Wird es abgeschrieben?
Will Parzybok
1
docker.ioPaket wird von Ubuntu-Entwicklern gepflegt. Ubuntu-Entwickler sind nicht mit der "offiziellen Docker-Website" verbunden. Die Tatsache, dass die Docker-Website nicht darauf verweist, bedeutet also im Grunde nichts.
Zerkms
1
@zerkmsIst docker.io aber aktuell?
Will Parzybok
1
Überprüfen und sehen? packages.ubuntu.com/…
zerkms
Das funktioniert jetzt wieder total!
thoni56

Antworten:

73

Ältere Versionen der Docker-Binärdatei wurden Docker oder Docker-Engine oder Docker-Io genannt

Docker-Io- Paket ist immer noch der Name, den Debian / Ubuntu für die Docker-Version verwendet, die auf ihren offiziellen Repos bereitgestellt wird .

docker-ce ist eine zertifizierte Version, die direkt von docker.com bereitgestellt wird und auch aus dem Quellcode erstellt werden kann .

Der Hauptgrund für die Verwendung des Namens docker-io auf der Debian / Ubuntu-Plattform war die Vermeidung eines Namenskonflikts mit der Docker-Systemablage-Binärdatei.

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

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

Vor der Installation von Docker Community Edition (docker-ce von docker.com) müssen Sie möglicherweise ältere Binärdateien entfernen.

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

Trockenlaufvergleich auf 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])

Die Docker-Ce-Binärdateien sind in der Regel die neuesten Versionen und enthalten Docker-Ce-Cli.

lvolmar
quelle
1
@Ivolmar Vielen Dank, also wäre es dumm, docker.io über eine der neueren zu verwenden?
Will Parzybok
3
@ WillParzybok Richtig. Abhängig von Ihrer Version von Debian oder Ubuntu sollten Sie in der Lage sein, eine neue CE-Version zu installieren und Binärdateien älterer Versionen zu entfernen
lvolmar
2
In Ubuntu 19.04 liegt die docker.io-Version etwas vor docker-ce (18.09.5 v. 18.06.3). Vendor Releases und ppas liegen normalerweise vor Ubuntus Releases. Kommentare darüber, ob der Rat zur Verwendung von ce over io weiterhin gilt.
Reece
7
2019-Mai-21 verwirrt ... was unter Ubuntu 18.04 zu verwenden? apt-get install docker.iosieht so viel komfortabler aus als die 10 Schritte oder mehr, um Docker-CE zu installieren :(
Wlad
1
Habe es gerade getan apt install docker.iound habe Docker version 18.09.2, build 6247962... also, was ist mit Docker-Ce los? Ich nehme, was Ubuntu mir gibt.
Wlad
120

Seien Sie vorsichtig bei Docker-Ce

Die akzeptierte Antwort ist unterkomplex.

docker-cewird von docker.com docker.iobereitgestellt , wird von Debian bereitgestellt.

An der Oberfläche bedeutet dies, dass Sie docker.iosofort installieren können, während docker-ceSie zuvor ein externes Repository von docker.com anhängen müssen.

Noch wichtiger ist jedoch, dass beide Pakete zwar ordnungsgemäß freigegebene Versionen von Docker bereitstellen, jedoch eine sehr unterschiedliche interne Struktur aufweisen :

  • docker.iomacht es auf Debian (oder Ubuntu) Weise: Jede externe Abhängigkeit ist ein separates Paket , das unabhängig aktualisiert werden kann und wird.
  • docker-cemacht es den Golang Weg: Alle Abhängigkeiten werden in der gezogene Quelle Baum vor dem Build und das Ganze bildet ein einziges Paket danach. Sie aktualisieren Docker also immer mit all seinen Abhängigkeiten gleichzeitig.

Das Problem mit dem letzteren Ansatz ist, dass er gegen vieles verstößt, was Debian / Ubuntu versuchen.

Wenn alle es so gemacht haben docker-ce...

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

Schlimmer noch, eine der 174 Versionen ist wahrscheinlich die Version 5.4.3 von XYZ vor drei Jahren, die eine andere, sehr unterschiedliche, aber ebenso klaffende Sicherheitslücke aufwies, die die Welt längst vergessen hat, die aber immer noch glücklich existieren wird auf Ihrem System.

Einige Anmerkungen:

  • Viele Webseiten nennen docker.io"veraltet". Das liegt daran, dass es ungefähr ein Jahr lang nicht gewartet wurde. Ab August 2019 ist dies nicht mehr der Fall.
  • Ich habe das alles heute hier gelernt und werde jetzt von Verwenden docker-cezu Verwenden wechseln docker.io- und vermutlich nie wieder zurückkehren.
  • Es gibt einen Grund, warum das Debian / Ubuntu-Verpackungssystem so kompliziert ist. Ein guter Grund.
Lutz Prechelt
quelle
4
fand diese Antwort, nachdem docker-ce in 2 meiner Knoten feststeckte, während ein anderer Knoten mit docker.io während eines passenden Upgrades überlebte.
Jingshao Chen
3
Dies bringt mich dazu, das docker.io-Paket von Debian / Ubuntu zu bevorzugen. Darüber hinaus ist es nur eine apt installentfernt, während ich für Docker-CE immer zu Docker-Dokumenten gehen muss , um die Installationsschritte nachzuschlagen.
Wlad
1
Möglicherweise möchten Sie die Sicherheitsauswirkungen der Verwendung von docker.io erwähnen. Sie erhalten keine Sicherheitspatches, sobald die Wartung wieder unterbrochen wird, und selbst wenn dies nicht der Fall ist, verlassen Sie sich darauf, dass die Betreuer jeden Sicherheitspatch korrekt zurückportieren.
Benni
1
Ein Vorteil von Docker-CE ist, dass Sie eine zertifizierte Version erhalten. Sie erhalten das Versprechen des Docker-Teams, dass das Paket mit den gebündelten Abhängigkeiten funktioniert. Vermutlich gibt es weniger Fingerzeig, wenn Sie ein Problem haben. Bescheinigen die Debian-Betreuer von docker.io , dass Docker auf der aktuellsten Version aller abhängigen Pakete ausgeführt wird? Hat das Docker-Team seine Tests so gut verpackt, dass jedes andere Team eine Freigabe zertifizieren kann? Hier gibt es keine "beste" Lösung, nur ein Gleichgewicht der Risiken, und Sie müssen entscheiden, welche Risiken für Sie wichtiger sind.
BobHy
@ BobHy Ich stimme zu, es ist ein Kompromiss. Vergessen Sie nicht, docker.ioin Ihren Produktionssystemen, die keine Entwicklungsaktivität haben , zu wechseln, wenn Docker Inc. den Bach runtergeht oder docker-ceaus einem anderen Grund keine regelmäßigen (!) Updates mehr vornimmt. Debian hat in dieser Hinsicht einen guten Ruf: Auch wenn es keine docker.ioUpdates mehr geben sollte, werden es die vielen Bibliotheken immer noch tun.
Lutz Prechelt