Использование rootless docker
Вы можете установить Apiary так что бы использовался docker rootless.
Для этого вам нужно:
- Запустить
dockerв режимеrootless. - Настроить его для нормальной работы с Apiary.
- Установите или переустановите Apiary с rootless docker.
Запуск docker в режиме rootless
Для того, что бы запустить docker в режиме rootless можно воспользоваться инструкцией на сайте разработчика docker.
Подробную инструкцию можно найти по ссылке: https://docs.docker.com/engine/security/rootless/.
Инструкция в данном параграфе, основана на этой инструкции и дополнена некоторыми пояснениями и уточнениями.
-
Выберите или создайте отдельного пользователя, под которым будет запущен docker. Для этого нельзя использовать пользователя
docker. Пользователемhw-fh-srvвоспользоваться также нельзя. В нашем примере мы назвали пользователяtest-user, но рекомендуем использовать именование, принятое в вашей организации. -
Проверьте, что установлен пакет
rootlesskit: -
Для корректной работы Вам потребуется
iptables. Проверьте, что он у вас уже уставлен, если нет, то необходимо его установить. Так же может потребоваться загрузка модуля ядраiptables. Например, для операционных систем семейства RHEL и других совместимых: -
Из-под пользователя
rootостановите и выгрузите сервис hw-fh, если он был запущен ранее: -
Очистите 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:
-
-
Если вы не используете сторонний обратный прокси, и чтобы бы, при этом, Apiary был доступен на порту 80 и/или 443, необходимо выполнить команду (требуются права root):
-
Для применения настроек
dockerнужно перезапуститьdockerсервис из-под пользователя, под которым запущен (test-userв нашем примере): -
В зависимости от вашего дистрибутива Linux и его настроек по умолчанию, возможно вам потребуется открыть входящий порт в
firewallдля каждого из нужных вам портов 80, 443, 5671, 5672. Например, для порта443: -
Для применения настроек firewall перезапустите его:
Установка с rootless docker
После того как docker установлен и настроен в режиме rootless, установите Apiary с использованием
rootless docker.
Для установки необходимо знать:
- имя пользователя, под которым запущен
docker; docker socket, который ранее вам было предложено сохранить в переменнуюDOCKER_HOST.
Укажите эти значения в качестве параметров установочного бандла:
sudo bash install_hw_fh_en-US_2025.9.2.run -- \
--foreign-docker-host unix:///run/user/1001/docker.sock \
--foreign-docker-user test-user
Обратите внимание, что сперва требуется указать два минуса, и затем опции установщика:
--foreign-docker-host– имя сокета docker;--foreign-docker-user– имя пользователя, под которым запущен docker.
После окончания работы инсталлятора вы должны получить Apiary работающим с rootless docker.