Bug 44495 - Не запускается контейнер без root
Summary: Не запускается контейнер без root
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: nerdctl-rootless (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: obirvalger@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-30 14:51 MSK by obidinog@basealt.ru
Modified: 2023-03-14 18:31 MSK (History)
3 users (show)

See Also:


Attachments
log (682 bytes, text/plain)
2022-11-30 14:51 MSK, obidinog@basealt.ru
no flags Details
Видео с воспроизведением ошибки (1.08 MB, video/webm)
2023-03-14 13:36 MSK, Evgeny Ivanitskiy
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description obidinog@basealt.ru 2022-11-30 14:51:06 MSK
Created attachment 11992 [details]
log

Платформы:
kworkstation-10.1
workstation-10-x86-64

Пакет:
nerdctl 1.0.0-alt1
nerdctl-rootless 1.0.0-alt1

Шаги:
1)Настроить subid и subgid
# usermod --add-subuids 100000-165535 test
# usermod --add-subgids 100000-165535 test

2)Из под пользователя test выполнить
$ containerd-rootless-setuptool.sh install

3)Загрузить образ 
$ nerdctl pull alt

4)Создать контейнер
$ nerdctl create alt

5)Запустить контейнер
$ nerdctl run alt

Результат:
Контейнер не запускается

Ожидаемый результат:
Контейнер запущен успешно

Дополнительно:
Проверено на Sisyphus.
Из под root всё работает успешно.
Comment 1 Evgeny Ivanitskiy 2023-03-14 13:36:12 MSK
Created attachment 12739 [details]
Видео с воспроизведением ошибки

Проверил воспроизводимость ошибки в sisyphus по описанным выше шагам. Ошибка в sisyphus воспроизводится.

Платформы:
kworkstation-10.1 обновленный до Sisyphus

Контейнер не запускается от пользователя без root-прав выдавая следующую ошибку:
$ nerdctl run alt
FATA[0000] failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: time="2023-03-14T12:46:42+03:00" level=fatal msg="failed to call cni.Setup: plugin type=\"bridge\" failed (add): failed to locate iptables: exec: \"iptables\": executable file not found in $PATH"
Failed to write to log, write /home/test/.local/share/nerdctl/1935db59/containers/default/06d4a2fb688017ee3cc96575ae6ec99b69485accc8ab4e9f6fe44afdc3016e21/oci-hook.createRuntime.log: file already closed: unknown


Дополнительно:
Если попробовать запустить контейнер от root пользователя, то это также не удастся сделать. Контейнер не запускается со следующей ошибкой:
FATA[0000] cannot access containerd socket "/run/containerd/containerd.sock": no such file or directory 


Приложил видео с воспроизведением ошибки
Comment 2 obirvalger@altlinux.org 2023-03-14 15:58:30 MSK
Нужно добавить /usr/sbin и /sbin в PATH пользователю, который запускает nerdctl.
Comment 3 Evgeny Ivanitskiy 2023-03-14 17:34:35 MSK
(Ответ для obirvalger@altlinux.org на комментарий #2)
> Нужно добавить /usr/sbin и /sbin в PATH пользователю, который запускает
> nerdctl.

Получается исполняемые файлы находятся в каталогах, которые, по умолчанию, не прописаны в переменной PATH у пользователя. Может следует сделать создание символьных ссылок? Чтобы пользователю не приходилось править переменную PATH. Или вместо символьных ссылок положить исполняемые файлы сразу в /usr/bin?
Comment 4 obirvalger@altlinux.org 2023-03-14 18:31:18 MSK
В данном случае нужны сторонние программы iptables и ip6tables.

Собрал в сизиф nerdctl 1.2.1-alt2 с добавлением sbin в PATH в начале работы программы.