[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: непривелигерованный контейнер lxc в бустер



On 14/02/2021 03:08, Maksim Dmitrichenko wrote:
чт, 11 февр. 2021 г. в 18:51, Maxim Nikulin:

Если правильно помню, то не сработает mkdev, такое namespaces не
позволяют. Так что готовить образы должен root. Дальше их уже может
распаковывать обычный пользователь, поэтому --template
download успешно работает.
Если создается привилегированный контейнер, то с правами root все будет
работать. А fakeroot дает дополнительные накладные расходы - надо
сначала создавать дерево файловой системы во временном месте, и уже
потом распаковывать его в namespace. В этом смысле готовые образы типа
download проще.

То, что download проще, не обсуждается. Мой комментарий-вопрос относился именно к готовке образа. Ведь вы написали: "готовить образы должен root". Вот я и предположил, что если вы всё-таки дошли до готовки, то нет никакой нужды на самом деле в том, чтобы это был root.

Наверно я просто не достаточно аккуратно выразился. Я назвал образом дерево файловой системы, которое будет использоваться внутри контейнера. В этом смысле fakeroot к стандартным шаблонам действительно не приспособили, от обычного пользователя работает только "download". Я пытался сказать, что не стоит ждать, что `-t debian` заработает. Хоть это и может показаться странным.

Надеюсь, что без особых сложностей можно написать шаблон, который будет запускаться от обычного пользователя и создавать дерево файлов с помощью debootstrap. Заодно получится образ, который можно распаковывать, чтобы разворачивать такие же контейнеры. Хотя пока сам не попробовал, ручаться не могу. Повисший на семафоре fakeroot я видел больше одного раза. С другой стороны, проблема была слишком редкой, чтобы серьезно искать причины.

P.S. Я как-то не осознавал важности того, что когда запускаешь lxc-контейнеры руками, их надо заворачивать в systemd units. И lxc-attach надо пускать из-под systemd-run. Без Delegate=yes systemd, которые живут снаружи и внутри, могут между собой поругаться. И это лучше делать не только для чистых cgroup v2, хотя такие нюансы описаны именно там
https://wiki.debian.org/LXC/CGroupV2


Reply to: