Использование 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
: -
Установите
rootless
docker
из-под нового пользователя. Для этого зайдите в систему под новым пользователем (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
: -
Для применения настроек firewall перезапустите его:
Установка с rootless docker
После того как docker
установлен и настроен в режиме rootless
, установите Hive с использованием
rootless docker.
Для установки необходимо знать:
- имя пользователя, под которым запущен
docker
; docker socket
, который ранее вам было предложено сохранить в переменнуюDOCKER_HOST
.
Укажите эти значения в качестве параметров установочного бандла:
sudo bash install_hw_bw_en-US_2025.8.3.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.