Перейти к основному содержимому
Версия: Новая

Установка Docker

Программный комплекс Salt.Box распространяется в виде набора образов для контейнеризатора приложений Docker и файлов скриптов развертывания многоконтейнерных приложений (Docker Compose).

Для установки Salt.Box вам понадобится виртуальный или физический сервер с установленными на нем компонентами Docker.

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

Поддерживаемые платформы

ОСDocker engineDocker 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 42moby-engine
28.2.2
docker-compose
2.37.0
Ubuntu 24.04.2 LTSdocker.io
27.5.1
docker-compose-v2
2.24.6
Ubuntu 25.04docker.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/).

Установка

Краткое описание процесса настройки:

  1. Устанавливаются утилиты newuidmap и newgidmap.

  2. В файлах /etc/subuid и /etc/subgid Вашему пользователю должно быть выделено не менее 65536 идентификаторов UID и GID. (строка вида ПОЛЬЗОВТЕЛЬ:НАЧАЛЬНЫЙ_ИД:РАЗМЕР_ПУЛА).

  3. Останавливается и отключается системная служба Docker:

    sudo systemctl disable --now docker.service docker.socket
  4. Запускается установка dockerd-rootless:

    dockerd-rootless-setuptool.sh install

    Если последняя команда не найдена, в зависимости от операционной системы ставится дополнение:

    1. Для Debian/Ubuntu (с подключенным официальным репозиторием Docker):

      sudo apt-get install -y docker-ce-rootless-extras
    2. На 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
  5. Задаётся переменная среды DOCKER_HOST в файле
    # ~/.config/environment.d/10_rootless_docker.conf.

    Для сессии Wayland это можно сделать следующим образом:

    DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock"

    Для применения конфигурации требуется повторно войти в систему.

  6. Проверить установку можно следующим образом:

    docker run -it --rm hello-world.

Настройка Rootless Docker для Salt.Box

Системный Docker по умолчанию хранит образы, тома и прочие объекты в каталоге /var/lib/docker/.
Rootless Docker хранит данные в ~/.local/share/docker.

  1. Для сохранения томов (на которых размещаются данные 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_*
  2. Чтобы запущенная от непривилегированного пользователя служба могла занимать порты ниже 1024, необходимо выдать соответствующее право команде rootlesskit:

    sudo setcap cap_net_bind_service=ep "$(which rootlesskit)"
  3. Возвратить пользователю права на директорию с saltbox-compose:

    sudo chown "$(whoami):$(id -gn)" -R ПУТЬ_К_SALTBOX_COMPOSE
  4. Затем можно запустить систему вызовом скрипта:

    ./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/), отображающее в трее число запущенных в данный момент контейнеров.