Использование rootless docker
Вы можете установить Hive так, чтобы использовался docker rootless.
Для этого нужно:
- Запустить
dockerв режимеrootless. - Настроить его для нормальной работы с Hive.
- Установить или переустановить Hive с rootless docker.
Запуск docker в режиме rootless
Чтобы запустить docker в режиме rootless, воспользуйтесь инструкцией на сайте разработчика docker.
Подробную информацию смотрите здесь: https://docs.docker.com/engine/security/rootless/.
Данная инструкция основана на этой информации и дополнена некоторыми пояснениями и уточнениями.
-
Выберите или создайте отдельного пользователя, под которым будет запущен docker. Пользователи
dockerиhw-bw-srvне подойдут. В приведенном примере пользователь называетсяtest-user. При выборе имени пользователя рекомендуем придерживаться стандарта, принятого в вашей организации. -
Проверьте, что установлен пакет
rootlesskit: -
Для корректной работы требуется
iptables. Проверьте, уставлен ли он у вас. Если нет, установите его. Также может потребоваться загрузка модуля ядраiptables. Для ОС семейства RHEL и ОС, совместимых с ним, выполните команду: -
Из-под пользователя
rootостановите и выгрузите сервис hw-bw, если он был запущен ранее: -
Очистите docker от хранения лишних данных на машине:
-
Выгрузите
rootfulсервисdockerиз-под пользователяroot: -
Установите
rootlessdockerиз-под нового пользователя. Для этого зайдите в систему как новый пользователь (в данном примере — какtest-user).
Примечание:
Использовать командуsuне получится. Войдите черезSSHлибо воспользуйтесь консолью ВМ, чтобы зайти под этим пользователем. Команда для установки: -
Система предложит вам добавить
docker socketв переменнуюDOCKER_HOSTв~/.bashrc. Это может быть полезно в дальнейшем. Сохраните этотdocker socketу себя. Примечание:1001здесь — этоuidпользователя для запускаdocker. У вас может быть другое значение. -
Активируйте сервис rootless docker из-под его пользователя (в данном примере —
test-user): Обратите внимание: для всех операций с сервисомdockerпри помощи командsystemctlиjournalctlтеперь нужно использовать опцию--user: -
Запустите сервис
docker:
Дополнительная настройка rootless docker
Дополнительные настройки docker можно добавить в файл конфигурации ~/.config/docker/daemon.json.
В этом файле можно указать диапазоны IP-адресов для создаваемых контейнеров, настройки зеркалирования для docker registry и т. п.
Создайте файл, как в примере, чтобы добавить эти настройки в будущем:
После выполнения шагов из предыдущей главы сервис docker запускается при первом логине из-под пользователя, под которым он установлен (в данном примере — test-user).
Чтобы сервис docker запускался не только при входе в систему под этим пользователем,
но и сразу при старте машины, необходимо выполнить следующие действия (под пользователем root):
Чтобы посмотреть логи docker под этим пользователем, выполните следующие шаги (требуются права root):
-
В файле
/etc/systemd/journald.confукажитеStorageв значенииpersistent, если вы это не делали ранее. -
Перезапустите
journald: -
Теперь, чтобы посмотреть логи
docker, выполните команду из-под пользователя, под которым запущенrootless docker:
Если вы не используете сторонний обратный прокси и хотите, чтобы Hive был доступен на порту 80 и/или 443, выполните команду (требуются права root):
Для применения настроек docker:
-
Перезапустите
dockerсервис из-под пользователя, под которым запущен (в данном примере —test-user): -
В зависимости от вашего дистрибутива Linux и его настроек вам может потребоваться открыть входящий порт в
firewallдля каждого из нужных вам портов 80, 443.
Пример для порта443: -
Для применения настроек брандмауэра перезапустите его:
Установка с rootless docker
После того как docker установлен и настроен в режиме rootless, установите Hive с использованием
rootless docker.
Для установки необходимо знать:
- имя пользователя, под которым запущен
docker; docker socket, который ранее вам было предложено сохранить в переменнуюDOCKER_HOST.
Укажите эти значения в качестве параметров установочного бандла:
sudo bash install_hw_bw_en-US_2026.1.1.run -- \
--foreign-docker-host unix:///run/user/1001/docker.sock \
--foreign-docker-user test-user
Обратите внимание, что сперва требуется указать два минуса, и затем опции установщика:
--foreign-docker-host— имя сокета docker;--foreign-docker-user— имя пользователя, под которым запущен docker.
После окончания работы инсталлятора вы должны получить Hive, работающий с rootless docker.