В разделе приведен пример установки Docker в режиме Rootless в операционной системе Альт Сервер:
1.Создайте пользователя, от имени которого будет запускаться служба Docker.
2.Установите и настройте Docker в режиме Rootless.
3.Настройте работу Docker от имени созданного пользователя.
Примечание. Далее в примере указано, под какой учетной записью необходимо выполнять действия. Для переключения между учетными записями используйте отдельную сессию, не нужно переключаться между пользователями в контексте одной ssh-сессии.
1.На сервере, где планируется развернуть компоненты Docker, войдите в операционную систему под учетной записью с правами суперпользователя (root).
2.Создайте группу пользователей и задайте для нее идентификатор. Для этого выполните команду:
groupadd -g <Идентификатор группы> <Имя группы>
Пример:
groupadd -g 25000 rxuser
3.В группе создайте пользователя, от имени которого будет запускаться служба Docker. Далее в разделе для примеров используется пользователь rxuser.
ВАЖНО. Рекомендуется задавать одинаковые имя и идентификатор для группы и пользователя.
adduser -u <Идентификатор пользователя> -g <Идентификатор группы> <Имя пользователя>
Пример:
adduser -u 25000 -g 25000 rxuser
4.Задайте пароль для пользователя:
passwd rxuser <Пароль>
Вы также можете использовать учетную запись ранее созданного пользователя. Необходимо проверить, что он входит в группу с тем же именем и идентификатором, что и у пользователя.
Установка и настройка Docker в режиме Rootless
ВАЖНО. Если на компьютере уже запущена служба Docker, то ее необходимо удалить или остановить. Две службы Docker не рекомендуется запускать на одном сервере. После перезапуска операционной системы служба стартует автоматически, поэтому рекомендуется отключить также ее автозапуск.
Чтобы остановить службу Docker, выполните команду:
systemctl stop docker
Далее действия выполняйте под учетной записью с правами суперпользователя (root).
1.Обновите кэш пакетов. Для этого выполните команду:
apt-get update
2.Для запуска Docker в режиме Rootless установите пакет docker-engine-rootless:
apt-get install docker-engine-rootless
3.Разрешите Docker использовать привилегированные порты, их номера ниже 1024:
setcap cap_net_bind_service=ep $(which rootlesskit)
4.Увеличьте ограничение на количество экземпляров inotify, которые могут быть созданы для одного пользователя. Inotify – это механизм в ядре Linux, который позволяет приложениям отслеживать изменения в файловой системе в режиме реального времени. Для этого в файл /etc/sysctl.conf добавьте параметр fs.inotify.max_user_instances и укажите для него значение 65536. Далее оно будет использоваться при настройке диапазона идентификаторов пользователей и групп. Пример команды:
nano /etc/sysctl.conf
fs.inotify.max_user_instances = 65536
5.Примените настройки:
sysctl –p
6.Чтобы делегировать пользователю rxuser управление лимитами ресурсов, последовательно выполните команды:
mkdir -p /etc/systemd/system/user@.service.d
cat > /etc/systemd/system/user@.service.d/delegate.conf << EOF
[Service]
Delegate=cpu cpuset io memory pids
EOF
7.Перезапустите процесс менеджера управления службами systemd:
systemctl daemon-reload
8.В файле /etc/security/limits.d/50-defaults.conf увеличьте количество запускаемых процессов для пользователя (ulimits).
Пример:
# recommended defaults for most systems
* soft core 0
* soft nproc 8192
root soft nproc 8192
* hard nproc 8192
9.Добавьте запись о subuid – диапазон идентификаторов, которые будут использоваться в операционной системе для пользователя:
echo "rxuser:100000:65536" >> /etc/subuid
10.Добавьте запись о subgid – диапазон идентификаторов, которые будут использоваться в операционной системе для группы пользователей:
echo "rxuser:100000:65536" >> /etc/subgid
Настройка работы под новым пользователем
1.Войдите в операционную систему под учетной записью созданного пользователя rxuser.
2.После установки пакета docker-engine-rootless на предыдущих шагах настройки в папке /usr/bin появился пакет dockerd-rootless-setuptool.sh. Запустите его, чтобы настроить службу Docker:
dockerd-rootless-setuptool.sh install
3.Экспортируйте переменные:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
Также добавьте эти строки в файлы ~/.bashrc и ~/.bash_profile, чтобы настройка не сбрасывалась после завершения сеанса работы.
ПРИМЕЧАНИЕ. Символы ~/ означают, что файл находится в домашней папке текущего пользователя. Для пользователя rxuser это папка /home/rxuser.
4.Чтобы Docker работал в режиме Rootless, выполните команду:
docker context use rootless
5.Запустите службу Docker:
systemctl --user start docker.service
Для управления службой Docker также используйте команды:
•остановить службу:
systemctl --user stop docker.service
•перезапустить службу:
systemctl --user restart docker.service
6.Настройте автозапуск службы при старте операционной системы. Действие выполняйте под учетной записью с правами суперпользователя (root):
loginctl enable-linger <Имя пользователя>
Пример:
loginctl enable-linger rxuser
7.Проверьте, что у пользователя есть права на чтение и запись в папку с Directum Launcher и вложенные в нее папки. Также проверьте права на запись в домашнюю папку пользователя (/home/rxuser).
8.Далее завершите действия по подготовке к установке и установите систему с помощью Directum Launcher. Действия выполняйте под учетной записью созданного пользователя rxuser. При выполнении команд скриптов развертывания не используйте команду sudo, так как она предназначена для выполнения действий от имени суперпользователя.
© Компания Directum, 2025 |