Установка Docker
Программный комплекс Salt.Box распространяется в виде набора образов для контейнеризатора приложений Docker и файлов скриптов развертывания многоконтейнерных приложений (Docker Compose).
Для установки Salt.Box вам понадобится виртуальный или физический сервер с установленными на нем компонентами Docker.
Ниже приведены ссылки на онлайн-документацию проекта Docker, описывающую, как установить необходимые компоненты Docker на различные операционные системы.
Поддерживаемые платформы
| ОС | Docker engine | Docker compose |
|---|---|---|
| CentOS Stream 10 (из Docker's rpm repo) | docker-ce 28.2.2 | docker-compose-plugin 2.36.2 |
| Debian 12 (из Docker's apt repo) | docker-ce 28.2.2 | docker-compose-plugin 2.36.2 |
| Fedora 42 (из Docker's rpm repo) | docker-ce 28.2.2 | docker-compose-plugin 2.36.2 |
| Fedora 42 | moby-engine 28.2.2 | docker-compose 2.37.0 |
| Ubuntu 24.04.2 LTS | docker.io 27.5.1 | docker-compose-v2 2.24.6 |
| Ubuntu 25.04 | docker.io 27.5.1 | docker-compose-v2 2.33.0 |
| Альт 10.4, Альт 11.0 | docker-engine 27.1.1 | docker-compose-v2 2.29.7 |
| Astra Linux SE 1.7.7, Astra Linux SE 1.8.2 | docker.io 25.0.5 | docker-compose-v2 2.20.2 |
Для установки сервера Salt.Box в ОС Astra Linux SE 1.7, 1.8 необходимо выполнить дополнительные настройки службы docker и конфигурации проекта.
Подробности смотрите в разделе Развёртывание сервера Salt.Box. Особенности развёртывавния сервера Salt.Box в Astera 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указывается только при первом запуске от пользователя, чтобы credentials прописались в~/.docker/config.json).
Бонусом в GNOME после настройки Docker rootless mode будет работать расширение Easy Docker Container (https://extensions.gnome.org/extension/2224/easy-docker-containers/), отображающее в трее число запущенных в данный момент контейнеров.