Summary: | Не запускается контейнер без root | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | obidinog <obidinog> | ||||||
Component: | nerdctl-rootless | Assignee: | obirvalger <obirvalger> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P5 | CC: | obirvalger, pikone, shaba | ||||||
Version: | unstable | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
Attachments: |
|
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
Приложил видео с воспроизведением ошибки
Нужно добавить /usr/sbin и /sbin в PATH пользователю, который запускает nerdctl. (Ответ для obirvalger@altlinux.org на комментарий #2) > Нужно добавить /usr/sbin и /sbin в PATH пользователю, который запускает > nerdctl. Получается исполняемые файлы находятся в каталогах, которые, по умолчанию, не прописаны в переменной PATH у пользователя. Может следует сделать создание символьных ссылок? Чтобы пользователю не приходилось править переменную PATH. Или вместо символьных ссылок положить исполняемые файлы сразу в /usr/bin? В данном случае нужны сторонние программы iptables и ip6tables. Собрал в сизиф nerdctl 1.2.1-alt2 с добавлением sbin в PATH в начале работы программы. |
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 всё работает успешно.