Установка Docker в Ubuntu 24.04 в rootless режиме
Использовать Docker в root-режими достаточно неудобно и не очень безопасно. Опишу как установить Docker в rootless режиме.
Предисловие
Warning
Внимание
Актуально на момент написания статьи 2025-03-22.
Использовался Ubuntu 24.04
Запуск Docker в rootless режиме на Ubuntu повышает безопасность, так как позволяет демону Docker и контейнерам работать без привилегий суперпользователя.
Установка необходимых пакетов
uidmap предоставляет утилиты newuidmap и newgidmap, которые необходимы для отображения пространств имен пользователей.
dbus-user-session обеспечивает корректное управление сессиями D-Bus для пользовательских сеансов.
Настройка подчиненных идентификаторов пользователей и групп
|
Установка Docker
Danger
E: Unable to locate package docker-ce-rootless-extras Если возникла такая ошибка, то должны помочь следующие действия
Удаление докера (если установлен)
Установить репозиторий Docker
Добавить официальный GPG ключ:
|
Добавить репозиторий:
|
Установить пакеты докера
Установить в rootless режиме
Настройка переменных окружения
Это необходимо добавить в файл инициализации shell (например, ~/.bashrc или ~/.zshrc):
Важно для серверов
Linger
Если команда ниже покажет Linger=no, то запущенное в докере перестанет работать при отключении от ssh-сессии пользователя.
|
Чтобы этого избежать:
Нужен порт 80
По-умолчанию в rootless-режиме докера нельзя занимать порты ниже 1024. Но для личного проекта может понадобиться порт 80.
Нужно в файл /etc/sysctl.d/99-rootless-ports.conf (создать если не существует) добавить строку net.ipv4.ip_unprivileged_port_start=80.
Для применения:
После этого ваш сервис (например, nginx) заработает.