Що таке docker.io стосовно docker-ce та docker-ee?


119

Раніше для встановлення docker я б використовував

apt-get install docker.io

Однак я нещодавно помітив документацію для встановлення docker, і вона використовує docker-ce. Я намагався знайти різницю між ними, але вийшов порожнім. Що таке docker.io стосовно docker-ce?


1
@zerkms Мене збентежило, оскільки на офіційному веб-сайті docker немає згадки про docker.io. Чи знецінено?
Буде Парзібок

1
docker.ioПакет підтримується розробниками ubuntu. Розробники Ubuntu не пов'язані з "офіційним веб-сайтом докера". Тож те, що веб-сайт докера не посилається на нього, в принципі нічого не означає.
zerkms

1
@zerkmsIs docker.io, проте, оновлено?
Буде Парзібок

1
Перевірити і побачити? packages.ubuntu.com / ...
zerkms

Це тепер повністю працює знову!
thoni56

Відповіді:


73

Старіші версії бінарних файлів Docker називалися docker або docker-engine або docker-io

Пакет docker-io - це все ще ім'я, яке використовується Debian / Ubuntu для випуску докера, що міститься в офіційних репортажах .

docker-ce - це сертифікований випуск, що надається безпосередньо docker.com, а також може бути створений з джерела .

Основна причина використання імені docker-io на платформі Debian / Ubuntu полягала в тому, щоб уникнути конфлікту імен з бінарним системним лотком docker.

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

Докер має корпоративну версію (EE) та безкоштовну версію для спільноти (CE)

Перед встановленням Docker Community Edition (docker-ce з docker.com) може знадобитися видалити старі двійкові файли.

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

Сумісне порівняння на 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])

У Докер-се бінарні файли будуть мати тенденцію бути останні версії і включають в Докер-CE-консолі.


1
@Ivolmar Дуже дякую, тож було б нерозумно використовувати docker.io над одним із нових тоді?
Буде Паржибок

3
@WillParzybok Правильно. Залежно від вашої версії Debian або Ubuntu, ви повинні мати можливість встановити нову версію CE та видалити бінарні версії старішої версії
lvolmar

2
У Ubuntu 19.04 версія docker.io трохи випереджає docker-ce (18.09.5 v. 18.06.3). Випуски постачальників і пап, як правило, випереджають версії Ubuntu. Коментарі вдячні щодо того, чи все-таки діє порада щодо використання ce over io.
Рис

7
2019-21 травня заплутався ... що використовувати на Ubuntu 18.04? apt-get install docker.ioвиглядає так набагато зручніше , ніж робити 10 кроків або більше , щоб встановити Докер-Ce :(
Wlad

1
Щойно зробив apt install docker.ioі отримав Docker version 18.09.2, build 6247962... так що угоди з докер-се? Я беру те, що дає мені Ubuntu.
Wlad

120

Будьте обережні докер-се

Прийнята відповідь є недостатньо складною.

docker-ceнадається docker.com, docker.ioнадається Debian.

На поверхні це означає, що ви можете встановити docker.ioпрама, тоді docker-ceяк заздалегідь потрібно приєднати зовнішнє сховище з docker.com.

Що ще важливіше, хоча обидва пакети надають належним чином випущені версії Docker, вони мають дуже різну внутрішню структуру :

  • docker.ioробить це Debian (або Ubuntu) спосіб: Кожна зовнішня залежність є окремим пакетом, який можна і буде оновлено незалежно.
  • docker-ceце робить Голанг спосіб: Усі залежності втягуються в початкове дерево перед збіркою, і вся справа утворює один єдиний пакет згодом. Таким чином, ви завжди оновлюєте докер з усіма його залежностями відразу.

Проблема останнього підходу полягає в тому, що це суперечить значній частині того, що намагаються зробити Debian / Ubuntu.

Якби все робили так, як docker-ceце роблять ...

... у вас у вашій системі буде 174 версії багатьох бібліотек, які не тільки споживають багато пам’яті, але також роблять неможливим вирішити, чи є у вас версія 7.6.5 бібліотеки XYZ з такою жахливою вразливістю безпеки десь серед їх.
Не кажучи вже про те, щоб закрити цю вразливість (або всі 109 її примірників).

Гірше, що одна з 174 версій, швидше за все, буде версією 5.4.3 XYZ станом на три роки тому, яка мала ще одну, зовсім іншу, але так само, як і вразливу вразливість безпеки, про яку світ давно забув, але яка все ще буде щасливо існувати у вашій системі.

Деякі зауваження:

  • Багато веб-сторінок називають docker.io"застарілими". Це тому, що він був непорушеним близько року. Станом на серпень 2019 року це вже не так.
  • Я все це сьогодні дізнався тут і зараз перейду від використання docker-ceдо використання docker.io- і, імовірно, ніколи не повернуся назад.
  • Є причина, чому система упаковки Debian / Ubuntu настільки складна. Важлива причина.

4
знайшов цю відповідь після того, як docker-ce у двох моїх вузлах застряг, а інший вузол з docker.io вижив під час вдосконалення.
Jingshao Chen

3
Це змушує мене поглянути на улюблений пакет docker.io Debian / Ubuntu. Більше того, це лише одна apt installпіч, тоді як для docker-ce я завжди повинен зайти в Docker Docs, щоб переглянути кроки встановлення.
Wlad

2
Ви можете згадати про наслідки безпеки використання docker.io - ви не отримаєте патчів безпеки, як тільки вони знову вийдуть з обслуговування, і навіть доки ви не покладаєтесь на те, що обслуговуючі особи правильно підтримують кожен патч безпеки.
Бенні

2
Однією з переваг docker-ce є те, що ви отримуєте сертифікований випуск, ви отримуєте обіцянку команди докерської програми, що пакет буде працювати з пакетними залежностями. Імовірно, у вас є менше вказівних пальців, якщо у вас є проблеми. Чи засвідчують сервіси debian для docker.io, що докер працює на найновішій версії всіх залежних пакетів? Чи зробила команда докерів досить хорошу роботу з упаковки своїх тестів, щоб будь-яка інша команда могла засвідчити звільнення? Тут немає «найкращого» рішення, а лише баланс ризиків, і ви повинні вибрати, які ризики важливі для вас.
BobHy

@BobHy Я згоден, це компроміс. Просто не забудьте перейти на docker.ioсвої виробничі системи, які не мають активності в розробці, якщо і коли компанія Docker Inc. перестане зливати або припиняє регулярні (!) Оновлення з docker-ceіншої причини. Debian має в цьому відношенні міцну репутацію: навіть якщо docker.ioпотрібно припинити отримувати оновлення ще раз, багато бібліотек все одно будуть.
Lutz Prechelt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.