Podman: различия между версиями
Bne (обсуждение | вклад) (Создание страницы посвященой установке и настройке Podman) |
Pechenovv (обсуждение | вклад) м (добавлена пропущенная команда) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
Инструкция по установке<br> | Инструкция по установке<br> | ||
== Установка == | == Установка == | ||
Установить podman можно следующей командой: | Установить {{pkg|podman}} можно следующей командой: | ||
<syntaxhighlight lang="bash"># apt-get install podman</syntaxhighlight> | |||
== Rootless режим == | == Rootless режим == | ||
Для использования podman непривилегированными пользователями, необходимо произвести ряд дополнительных действий по настройке прав: | Для использования podman непривилегированными пользователями, необходимо произвести ряд дополнительных действий по настройке прав: | ||
Разрешить создание пользовательских пространств имён | # Разрешить создание пользовательских пространств имён: | ||
: < | #: <syntaxhighlight lang="bash"># sysctl kernel.unprivileged_userns_clone=1 | ||
# echo 'kernel.unprivileged_userns_clone=1' >> /etc/sysctl.d/42-podman.conf</syntaxhighlight> | |||
# Предоставить права на запуск исполняемых файлов {{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 | |||
# chmod o+x /usr/bin/newgidmap</syntaxhighlight> | |||
# Поскольку эти исполняемые файлы обращаются к системным вызовам setuid() и setgid(), чтобы лишний раз не выдавать SUID бит, задайте этим файлам соответствующие file capabilities: | |||
#:<syntaxhighlight lang="bash"># setcap cap_setuid+ep /usr/bin/newuidmap | |||
# setcap cap_setgid+ep /usr/bin/newgidmap</syntaxhighlight> | |||
Этих действий достаточно для запуска podman непривилегированными пользователями. | |||
{{Note| | |||
Чтобы podman могли запускать непривилегированные пользователи, для каждого такого пользователя должна существовать запись конфигурации subuid и subgid. Новые пользователи, созданные после установки {{pkg|podman}}, имеют эти записи по умолчанию. | |||
Для пользователей, у которых нет записей в {{path|/etc/subuid}} и {{path|/etc/subgid}}, можно создать запись с помощью команды {{cmd|usermod}}, например: | |||
<syntaxhighlight lang="bash"># usermod --add-subuids 100000-165536 --add-subgids 100000-165536 имя_пользователя</syntaxhighlight> | |||
Данная команда выделяет заданный диапазон UID и GID пользователю, что позволит пользователю и группе с именем пользователя запускать контейнеры Podman. | |||
<blockquote>В случае попытки добавить доменного пользователя, имя пользователя вносится в {{path|/etc/subuid}} и {{path|/etc/subgid}} вручную.</blockquote> | |||
Указанный выше диапазон UID и GID уже может быть занят другим пользователем, т.к. это диапазон по умолчанию для первого пользователя. Просмотреть занятые диапазоны можно в файлах {{path|/etc/subuid}} и {{path|/etc/subgid}}, например: | |||
<syntaxhighlight lang="bash"># cat /etc/subuid | |||
user:100000:65536 | |||
user2:165536:65536</syntaxhighlight> | |||
Многим образам требуется 65536 uid/gid для сопоставления. Рекомендуется выделять как минимум столько uid/gid для каждого пользователя. | |||
Для применения изменений в subuid и subgid необходимо выполнить команду: | |||
<syntaxhighlight lang="bash">$ podman system migrate</syntaxhighlight> | |||
}} | |||
== Запуск образов == | == Запуск образов == | ||
Podman предоставляет совместимый с Docker интерфейс CLI, а следовательно допустимо настроить при необходимости alias docker=podman | Podman предоставляет совместимый с Docker интерфейс CLI, а следовательно допустимо настроить при необходимости alias docker=podman: | ||
<syntaxhighlight lang="bash"># echo "alias docker=podman" >> ~/.bashrc</syntaxhighlight> | |||
Загрузка образа из репозитория | Загрузка образа из репозитория: | ||
<syntaxhighlight lang="bash"># podman pull registry.altlinux.org/alt/alt</syntaxhighlight> | |||
Запуск контейнера из образа | Запуск контейнера из образа: | ||
<syntaxhighlight lang="bash"># podman run -it --name alt registry.altlinux.org/alt/alt</syntaxhighlight> | |||
== Ссылки == | == Ссылки == |
Текущая версия от 11:55, 18 декабря 2023
Инструкция по установке
Установка
Установить podman можно следующей командой:
# apt-get install podman
Rootless режим
Для использования podman непривилегированными пользователями, необходимо произвести ряд дополнительных действий по настройке прав:
- Разрешить создание пользовательских пространств имён:
# sysctl kernel.unprivileged_userns_clone=1 # echo 'kernel.unprivileged_userns_clone=1' >> /etc/sysctl.d/42-podman.conf
- Предоставить права на запуск исполняемых файлов /usr/bin/newuidmap и /usr/bin/newgidmap пользователям, не являющимся владельцами файла и не принадлежащим к группе владельца файла:
- или
# control newgidmap public # control newuidmap public
# chmod o+x /usr/bin/newuidmap # chmod o+x /usr/bin/newgidmap
- Поскольку эти исполняемые файлы обращаются к системным вызовам 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