В чем разница между apt и snap, установленным docker?

Если вы планируете установить Docker на систему на базе Ubuntu или Debian, то вы можете использовать либо менеджер пакетов APT, либо Snap, который является универсальным установщиком пакетов. Однако в чем разница между установкой Docker из Apt и Snap, об этом мы и поговорим.

Менеджер пакетов:

Давайте сначала узнаем немного об этих двух менеджерах пакетов Ubuntu.

apt (Advanced Package Tool): Это менеджер пакетов по умолчанию во всех Debian, Ubuntu и других подобных дистрибутивах Linux. APT управляет репозиториями и устанавливает через них доступные пакеты (программное обеспечение) Debian. Он также может устанавливать локально доступные двоичные файлы Debian.

snap (менеджер пакетов SNAP): С другой стороны, Snap – это универсальный менеджер пакетов, потому что он не ограничивается только системами на базе Ubuntu или Debian, как APT. Вместо этого мы можем настроить и использовать его на всех популярных Linux-системах, включая RedHat и OpenSUSE.

Это возможно благодаря тому, что пакеты Snap являются самодостаточными и включают в себя все необходимые зависимости, что делает их независимыми от базовой системы. Более того, Snap также не полагается на системные репозитории для своих пакетов, вместо этого разработчик (Canonical) создал централизованное хранилище SNAP, которое позволяет легко распространять и обновлять пакеты.

Таким образом, если вы используете APT, то Docker будет установлен либо через системный репозиторий по умолчанию, либо через официальный, который вам придется добавлять вручную. В то время как Snap будет напрямую искать его в своем централизованном хранилище, чтобы установить Docker.

Изучить – Как установить Docker с помощью SNAP на Ubuntu Linux

Изоляция пакетов:

Теперь вы знаете, что такое APT и Snap, поэтому, если вы планируете установить пакет Docker с помощью любого из них, узнайте, как он будет взаимодействовать с системой.

apt: Если мы установим Docker или любой другой пакет через APT, он будет установлен по всей системе для доступа любой другой программы, если потребуется. Однако иногда это может привести к конфликтам версий и проблемам с зависимостями, если нескольким пакетам требуются разные версии одной и той же библиотеки.

Так, например, если вы уже установили Docker из системного репозитория, а теперь хотите установить последнюю версию Docker из его официального репозитория, то сначала нужно полностью удалить предыдущую версию, иначе возникнут проблемы.

[: Пакеты SNAP изолированы, а значит, установленные с их помощью программы не будут мешать работе хост-системы или других пакетов. Это связано с тем, что пакеты Snap изолированы от остальной системы и содержат свои собственные зависимости. Такая конфигурация пакетов обеспечивает лучшую стабильность и позволяет избежать конфликтов между различными приложениями и библиотеками. Однако эта возможность не является критерием для установки Docker с помощью Snap, поскольку контейнеры сами запускаются в изолированной среде.

Это также означает, что мы можем установить два экземпляра одного и того же программного обеспечения на одну систему: один с помощью Apt, а другой с помощью SNAP.

Рабочая директория

APT тесно интегрирован с хост-системой и использует общие системные каталоги для распаковки и установки пакетов, включая Docker, поэтому после установки мы можем найти его исполняемый файл в каталоге /usr/bin/. Однако это не относится к установленным пакетам Snap, поскольку он использует среду Sandbox, поэтому все программы, настроенные с его помощью, будут находиться в ~/snap , но со своими собственными каталогами.

Таким образом, для запуска или остановки службы Docker нельзя использовать стандартную опцию Systemctl если он установлен с помощью Snap.

Рабочий каталог для Docker

Обновления:

apt: Когда дело доходит до обновления установленных пакетов с помощью APT, пакеты будут обновляться с помощью обычной команды обновления системы. Но ее выполнение приведет к обновлению всех установленных пакетов, если только вы вручную не задержите обновление какого-то конкретного пакета.

[: В SNAP обновление пакетов может быть выполнено индивидуально, то есть если вы хотите обновить только Docker до его последней версии, но не другие, то мы можем это сделать. Хотя демон Snap по умолчанию настроен на периодическую проверку обновлений и их установку в фоновом режиме, при необходимости мы можем это отключить. Для этого нужно выполнить следующую команду: snap refresh --hold , а чтобы снова включить службу автоматического обновления, можно использовать snap refresh --unhold.

Доступность версий Docker:

Это одно из ключевых различий при установке Docker с помощью Apt или Snap, поскольку версия Docker, доступная в системном репозитории Ubuntu и APT по умолчанию, не будет самой последней. Если вы хотите иметь последнюю версию, используя APT, то нам нужно добавить официальный репозиторий Docker в систему вручную.

Однако с SANP дело обстоит иначе, поскольку его пакеты обычно поддерживаются и предоставляются разработчиками или сопровождающими. Таким образом, вы сможете получить более широкий спектр версий Docker непосредственно из хранилища SNAP или командной строки, включая последние релизы.

Итак, мы узнали, в чем разница между установкой пакета Docker с помощью APT и Snap, а теперь что использовать?

Если вы хотите использовать родные системные рабочие каталоги и команды системных служб для Docker, то можно воспользоваться менеджером пакетов APT. Ведь многие сторонние приложения, требующие Docker, легко распознают его при установке с помощью APT.

Те же, кто не хочет добавлять официальный репозиторий APT docker для его последней версии вручную, могут использовать SNAP для получения Docker с помощью одной команды.

Кроме того, обычно пакеты, установленные APT, работают быстрее, поскольку Snap использует сжатый формат файловой системы SquashFS, поэтому, когда вы используете установленное Snap программное обеспечение, системе необходимо его распаковать, и если ваше приложение имеет большой размер, то для его запуска системе может потребоваться некоторое время по сравнению с установленными APT.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *