Контейнеризация — метод, с помощью которого программный код упаковывается в единый исполняемый файл вместе с библиотеками и зависимостями, чтобы обеспечить его корректный запуск. Такие файлы называют контейнерами. Контейнеры можно разворачивать в разных средах и там управлять их работой. В чём-то этот метод схож с разворачиванием ПО на виртуальных машинах, однако, контейнеры занимают гораздо меньше места, намного меньше нагружают систему и в целом являются гораздо более удобным способом разворачивания приложений, что и привело к популярности этого метода.
В Uncom OS для управления контейнерами используется платформа Docker.
Всеобъемлющая документация по Docker доступна по данной ссылке: https://docs.docker.com/manuals/
В данной статье мы коснёмся только вопросов установки и первоначальной настройки Docker.
Есть несколько вариантов установки платформы Docker в Uncom OS.
Начнём с docker.io. Так, как Uncom OS основана на дистрибутиве Ubuntu, в наших репозиториях и в магазине приложений присутствует пакет docker.io. Docker.io это версия докера, созданная для дистрибутивов Debian и Ubuntu, она обновляется из встроенных репозиториев и обслуживается мейнтейнерами Ubuntu. В этом есть как плюсы (более грамотная архитектура зависимостей и библиотек), так и минусы (docker.io обновляется с задержкой, требуется установка дополнительных модулей, таких, как docker-compose, также доступных в магазине приложений и репозитории).
Docker-ce это официальная версия Docker Comunity Edition, обслуживаемая целиком и полностью компанией Docker Inc. Она устанавливается и обновляется из внешнего репозитория, либо с помощью скриптов установки. Docker-ce содержит в себе все необходимые дополнительные модули, такие как docker-compose, также поддерживает установку графических интерфейсов, таких, как docker-desktop.
Перед установкой необходимо удалить все официальные пакеты Docker, такие, как docker-ce и docker-desktop. Проще всего это сделать с помощью команды в терминале:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras docker-desktop
Если какой-то из пакетов не будет найден в репозитории, удалите его из этой команды и введите её заново.
Docker.io устанавливается как и любой другой системный пакет из магазинов приложений:


Если вы желаете работать с docker-compose, чтобы иметь возможность удобного управления несколькими контейнерами, вам необходимо установить docker-compose:


Проверим работу docker, установив простейший контейнер, выводящий в терминал приветствие Hello, World:

Проверим также версию установленного docker-compose:

При данном методе установки любые операции с Docker возможно выполнять только от имени суперпользователя. Для того, чтобы настроить запуск Docker с нужными вам правами, ознакомьтесь с данной статьей из официальной документации (статья на английском).
Удалите пакет docker.io в магазине приложений Uncom OS.


Если вы желаете полностью вычистить систему от остатков docker.io, введите в терминале команду:
dpkg -l | grep docker
В случае, если она найдет какие-то подходящие под параметры поиска пакеты, удалите их с помощью команды
sudo apt purge имена пакетов через пробел
Перед установкой необходимо удалить все неофициальные пакеты Docker, такие, как docker.io. Проще всего это сделать с помощью команды в терминале:
sudo apt purge docker.io docker-compose docker-compose-v2 docker-doc podman-docker
Если какой-то из пакетов не будет найден в репозитории, удалите его из этой команды и введите её заново.
Самый простой способ установки docker-ce это установка с помощью скрипта установки. Кроме того, при данном способе установки обновление docker-ce будет производиться в автоматическом режиме при обновлении остальных системных пакетов, так как устанавливается также внешний репозиторий docker-ce.
Для начала установим curl
sudo apt update && sudo apt install curl -y
Скачаем скрипт установки
curl -fsSL https://get.docker.com -o get-docker.sh
И выполним его:
sudo sh ./get-docker.sh
Результатом будет примерно такой вывод, из которого мы видим, что у нас добавился внешний репозиторий docker-ce, все требуемые пакеты установились:

При данном методе установки любые операции с Docker возможно выполнять только от имени суперпользователя. Для того, чтобы настроить запуск Docker с нужными вам правами, ознакомьтесь с данной статьей из официальной документации (статья на английском).
Однако, из вывода терминала при установке мы можем видеть, что не запущены системные службы.
Для того, чтобы добавить службы docker в автозапуск, выполните следующие команды:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Службы запустятся после перезагрузки ПК. Для разового запуска служб без перезагрузки ПК можно использовать команды
sudo systemctl start docker.service
sudo systemctl start containerd.service
Для проверки аналогичным образом установим контейнер hello-world:

И проверим список установленных вместе с docker-ce пакетов. Как мы видим, docker-compose в данном случае идёт плагином:

Для полного удаления всех компонентов docker-ce выполните команду:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Для удаления репозитория необходимо удалить файл docker.list из папки /etc/apt/sources.list.d/
sudo rm /etc/apt/sources.list.d/docker.list
Если для работы с контейнерами вы предпочитаете использовать графический интерфейс, вы можете установить пакет docker-desktop. Он уже включает в себя движок Docker, а также множество других компонентов, включая продвинутую систему управления кластерами контейнеров Kubernetes.
Так как движок Docker уже включен в docker-desktop, отдельная предварительная установка docker-ce не требуется. Однако для вашего удобства, и чтобы избежать необходимости добавлять репозитории вручную, мы рекомендуем установить docker-ce из установочного скрипта, как описано выше.
Подробная статья по установке docker-desktop доступна по ссылке. Мы приведем лишь краткую выжимку для вашего удобства
Актуальная версия пакета docker-desktop доступна по ссылке
Скачайте его, запустите, и установите как любой другой deb-пакет:

После установки вы можете запустить docker-desktop из меню приложений:


Мы пропустим авторизацию в DockerHub и сразу перейдём к проверке работы контейнеров:

Найдём уже знакомый нам контейнер hello-world, установим и сразу же запустим его с помощью команды run:

Docker Desktop позволяет сразу же задать имя контейнера и указать переменные окружения (такие, как порты) с помощью удобного графического меню:

В логах контейнера мы видим тот же вывод, что ранее видели в терминале при запуске аналогичного контейнера:

Документация по docker-desktop доступна на официальном сайте: https://docs.docker.com/desktop/
Удалить docker-desktop можно с помощью ярлыка приложения, либо в магазине приложений в списке установленных приложений, либо с помощью команды
sudo apt remove docker-desktop
