Установка Docker
Программный комплекс SALT.BOX распространяется в виде набора образов для контейнеризатора приложений Docker и файлов скриптов развертывания многоконтейнерных приложений (Docker Compose).
Для установки SALT.BOX вам понадобится виртуальный или физический сервер с установленными на нем компонентами Docker.
Ниже приведены ссылки на онлайн-документацию проекта Docker, описывающую, как установить необходимые компоненты Docker на различные операционные системы.
Поддерживаемые платформы
| ОС | Docker engine | Docker compose |
|---|---|---|
| Debian 12 (из Docker's apt repo) | docker-ce 29.6.2 | docker-compose-plugin 5.3.1 |
| CentOS Stream 10 (из Docker's rpm repo) | docker-ce 29.6.2 | docker-compose-plugin 5.3.1 |
| Fedora 44 (из Docker's rpm repo) | docker-ce 29.6.2 | docker-compose-plugin 5.3.1 |
| Fedora 44 | moby-engine 29.6.0 | docker-compose 5.3.0 |
| Ubuntu 26.04 LTS | docker.io 29.1.3 | docker-compose-v2 2.40.3 |
| Альт 10.4 / СП 10.2 | docker-engine 27.1.1 | docker-compose-v2 2.29.7 |
| Альт 11.1 | docker-engine 29.6.1 | docker-compose-v2 5.0.2 |
Для установки сервера SALT.BOX в ОС Astra Linux SE 1.7, 1.8 необходимо выполнить дополнительные настройки службы docker и конфигурации проекта.
Подробности смотрите в разделе Развёртывание сервера SALT.BOX. Особенности развёртывания сервера SALT.BOX в Astra Linux.
Прочие дистрибутивы Linux
Проект Docker не тестирует и не проверяет установку на производных дистрибутивах.
- Если вы используете производные Debian, такие как LMDE (Mint на основе Debian), следуйте инструкциям по установке в соответствующем выпуске ОС Debian.
Чтобы узнать, какой выпуск Debian соответствует версии вашего производного дистрибутива, обратитесь к документации вашего дистрибутива. - Аналогично, если вы используете производные Ubuntu, такие как Kubuntu, Lubuntu или Xubuntu, следуйте инструкциям по установке в соответствующем выпуске ОС Ubuntu.
Чтобы узнать, какой выпуск Debian соответствует версии вашего производного дистрибутива, обратитесь к документации вашего дистрибутива. - Некоторые дистрибутивы Linux предоставляют пакет Docker Engine через свои репозитории пакетов.
Эти пакеты собираются и поддерживаются сопровождающими пакетов дистрибутива Linux и могут иметь различия в конфигурации или собираются из измененного исходного кода.
Docker предоставляет двоичные файлы для ручной установки Docker Engine.
Эти двоичные файлы статически связаны, и вы можете использовать их в любом дистрибутиве Linux.
Rootless Docker
Добавление локального пользователя в группу docker для запуска Docker без sudo считается небезопасной практикой.
Ранее ПО Docker критиковалось за «монолитность» и работу под суперпользователем root, вследствие чего появилась альтернативная реализация системы управления контейнерами — Podman (это решение не полностью совместимо с Docker).
Существует способ работы службы docker в пространстве пользователя — режим Rootless (https://docs.docker.com/engine/security/rootless/).
Установка
Краткое описание процесса настройки:
-
Устанавливаются утилиты newuidmap и newgidmap.
-
В файлах
/etc/subuidи/etc/subgidВашему пользователю должно быть выделено не менее 65536 идентификаторов UID и GID. (строка видаПОЛЬЗОВАТЕЛЬ:НАЧАЛЬНЫЙ_ИД:РАЗМЕР_ПУЛА). -
Останавливается и отключается системная служба Docker:
sudo systemctl disable --now docker.service docker.socket -
Запускается установка dockerd-rootless:
dockerd-rootless-setuptool.sh installЕсли последняя команда не найдена, в зависимости от операционной системы ставится дополнение:
-
Для Debian/Ubuntu (с подключенным официальным репозиторием Docker):
sudo apt-get install -y docker-ce-rootless-extras -
На ArchLinux устанавливается пакет docker-rootless-extras из AUR (https://aur.archlinux.org/packages/docker-rootless-extras).
Настраивать newuidmap и newgidmap и выполнятьdockerd-rootless-setuptool.sh installне требуется. Необходимо только включить сокет от пользователя:systemctl --user enable --now docker.socket
-
-
Задаётся переменная среды
DOCKER_HOSTв файле
# ~/.config/environment.d/10_rootless_docker.conf.Для сессии Wayland это можно сделать следующим образом:
DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock"Для применения конфигурации требуется повторно войти в систему.
-
Проверить установку можно следующим образом:
docker run -it --rm hello-world.
Настройка Rootless Docker для SALT.BOX
Системный Docker по умолчанию хранит образы, тома и прочие объекты в каталоге /var/lib/docker/.
Rootless Docker хранит данные в ~/.local/share/docker.
-
Для сохранения томов (на которых размещаются данные SALT.BOX) можно перенести содержимое соответствующего каталога:
mkdir -p ~/.local/share/docker/volumes/
sudo cp -r /var/lib/docker/volumes/saltbox_* ~/.local/share/docker/volumes/
chown -R "$(whoami):$(id -gn)" ~/.local/share/docker/volumes/saltbox_* -
Чтобы запущенная от непривилегированного пользователя служба могла занимать порты ниже 1024, необходимо выдать соответствующее право команде
rootlesskit:sudo setcap cap_net_bind_service=ep "$(which rootlesskit)" -
Возвратить пользователю права на директорию с saltbox-compose:
sudo chown "$(whoami):$(id -gn)" -R ПУТЬ_К_SALTBOX_COMPOSE -
Затем можно запустить систему вызовом скрипта:
./bin/update_and_run.sh --no-root --login(флаг
--loginуказывается только при первом запуске от пользователя, чтобы учетные данные прописались в~/.docker/config.json).
Бонусом в GNOME после настройки Docker rootless mode будет работать расширение Easy Docker Container (https://extensions.gnome.org/extension/2224/easy-docker-containers/), отображающее в трее число запущенных в данный момент контейнеров.