Podman: различия между версиями

Материал из ALT Linux Wiki
м (добавлена пропущенная команда)
 
(не показана 1 промежуточная версия 1 участника)
Строка 11: Строка 11:
# echo 'kernel.unprivileged_userns_clone=1' >> /etc/sysctl.d/42-podman.conf</syntaxhighlight>
# echo 'kernel.unprivileged_userns_clone=1' >> /etc/sysctl.d/42-podman.conf</syntaxhighlight>
# Предоставить права на запуск исполняемых файлов {{path|/usr/bin/newuidmap}} и {{path|/usr/bin/newgidmap}} пользователям, не являющимся владельцами файла и не принадлежащим к группе владельца файла:
# Предоставить права на запуск исполняемых файлов {{path|/usr/bin/newuidmap}} и {{path|/usr/bin/newgidmap}} пользователям, не являющимся владельцами файла и не принадлежащим к группе владельца файла:
#: <syntaxhighlight lang="bash"># control newgidmap public
# control newuidmap public</syntaxhighlight> или
#: <syntaxhighlight lang="bash"># chmod o+x /usr/bin/newuidmap
#: <syntaxhighlight lang="bash"># chmod o+x /usr/bin/newuidmap
# chmod o+x /usr/bin/newgidmap</syntaxhighlight>
# chmod o+x /usr/bin/newgidmap</syntaxhighlight>
Строка 25: Строка 27:
<syntaxhighlight lang="bash"># usermod --add-subuids 100000-165536 --add-subgids 100000-165536 имя_пользователя</syntaxhighlight>
<syntaxhighlight lang="bash"># usermod --add-subuids 100000-165536 --add-subgids 100000-165536 имя_пользователя</syntaxhighlight>
Данная команда выделяет заданный диапазон UID и GID пользователю, что позволит пользователю и группе с именем пользователя запускать контейнеры Podman.
Данная команда выделяет заданный диапазон UID и GID пользователю, что позволит пользователю и группе с именем пользователя запускать контейнеры Podman.
<blockquote>В случае попытки добавить доменного пользователя, имя пользователя вносится в {{path|/etc/subuid}} и {{path|/etc/subgid}} вручную.</blockquote>


Указанный выше диапазон UID и GID уже может быть занят другим пользователем, т.к. это диапазон по умолчанию для  первого пользователя. Просмотреть занятые диапазоны можно в файлах {{path|/etc/subuid}} и {{path|/etc/subgid}}, например:
Указанный выше диапазон UID и GID уже может быть занят другим пользователем, т.к. это диапазон по умолчанию для  первого пользователя. Просмотреть занятые диапазоны можно в файлах {{path|/etc/subuid}} и {{path|/etc/subgid}}, например:

Текущая версия от 11:55, 18 декабря 2023

Инструкция по установке

Установка

Установить podman можно следующей командой:

# apt-get install podman

Rootless режим

Для использования podman непривилегированными пользователями, необходимо произвести ряд дополнительных действий по настройке прав:

  1. Разрешить создание пользовательских пространств имён:
    # sysctl kernel.unprivileged_userns_clone=1
    # echo 'kernel.unprivileged_userns_clone=1' >> /etc/sysctl.d/42-podman.conf
    
  2. Предоставить права на запуск исполняемых файлов /usr/bin/newuidmap и /usr/bin/newgidmap пользователям, не являющимся владельцами файла и не принадлежащим к группе владельца файла:
    # control newgidmap public
    # control newuidmap public
    
    или
    # chmod o+x /usr/bin/newuidmap
    # chmod o+x /usr/bin/newgidmap
    
  3. Поскольку эти исполняемые файлы обращаются к системным вызовам setuid() и setgid(), чтобы лишний раз не выдавать SUID бит, задайте этим файлам соответствующие file capabilities:
    # setcap cap_setuid+ep /usr/bin/newuidmap
    # setcap cap_setgid+ep /usr/bin/newgidmap
    

Этих действий достаточно для запуска podman непривилегированными пользователями.

Примечание:

Чтобы podman могли запускать непривилегированные пользователи, для каждого такого пользователя должна существовать запись конфигурации subuid и subgid. Новые пользователи, созданные после установки podman, имеют эти записи по умолчанию.

Для пользователей, у которых нет записей в /etc/subuid и /etc/subgid, можно создать запись с помощью команды usermod, например:

# usermod --add-subuids 100000-165536 --add-subgids 100000-165536 имя_пользователя

Данная команда выделяет заданный диапазон UID и GID пользователю, что позволит пользователю и группе с именем пользователя запускать контейнеры Podman.

В случае попытки добавить доменного пользователя, имя пользователя вносится в /etc/subuid и /etc/subgid вручную.

Указанный выше диапазон UID и GID уже может быть занят другим пользователем, т.к. это диапазон по умолчанию для первого пользователя. Просмотреть занятые диапазоны можно в файлах /etc/subuid и /etc/subgid, например:

# cat /etc/subuid 
user:100000:65536
user2:165536:65536

Многим образам требуется 65536 uid/gid для сопоставления. Рекомендуется выделять как минимум столько uid/gid для каждого пользователя.

Для применения изменений в subuid и subgid необходимо выполнить команду:

$ podman system migrate


Запуск образов

Podman предоставляет совместимый с Docker интерфейс CLI, а следовательно допустимо настроить при необходимости alias docker=podman:

# echo "alias docker=podman" >> ~/.bashrc

Загрузка образа из репозитория:

# podman pull registry.altlinux.org/alt/alt

Запуск контейнера из образа:

# podman run -it --name alt registry.altlinux.org/alt/alt

Ссылки

Документация
Настройка rootless в Podman
Репозиторий образов ALT