在Ubuntu14.04上,我创建了一个非特权容器,可以手动启动和停止。
但我希望这与系统一起开始和停止。
我在容器的配置中添加了以下内容:lxc.start.auto = 1 lxc.start.delay = 5
但是,系统脚本似乎不会选择非特权容器。
在一根线上有与此相关的linuxcontainers.org,但解决方案似乎仅限于root用户。
对于非根用户(在root用户的同意下),是否有一种干净的方法可以做到这一点?
发布于 2015-04-27 20:43:28
为了解决这个问题,我编写了一个小脚本,只需按照注释的说明操作即可。
发布于 2021-02-08 12:18:18
有一种方法可以启动没有enable-linger的根用户不拥有的非特权容器。但是,应该调整系统范围内的配置文件。解决方案涉及系统,并在Ubuntu-20.04和Ubuntu-18.04上进行测试。
关键部分是PAM配置,以便为过程分配适当的subuid范围。看起来,cron配置适合于这样的目的,但它可能会导致日志混乱。让我们创建一个专用名称(它也在.service文件中使用)。/etc/pam.d/lxc-unpriv文件:
@include cron.service文件在/etc/systemd/system/中
[Unit]
Description=LXC unprivileged container CONTAINERNAME
Wants=lxc-net.service
After=lxc-net.service
Wants=lxcfs.service
After=lxcfs.service
[Service]
User=CONTAINERUSER
Group=CONTAINERGROUP
PAMName=lxc-unpriv
Type=simple
KillMode=mixed
ExecStart=/usr/bin/lxc-start --name CONTAINERNAME --foreground
ExecStop=/usr/bin/lxc-stop --name CONTAINERNAME如果容器是为某些网络服务创建的,甚至可以添加.socket文件并将容器启动推迟到第一个请求。
发布于 2015-07-25 03:01:35
对不起:回答得太快了。即使lxc将“自动启动”显示为“是”,它也没有工作。
这里有一个有更多有用信息的链接,也许有人可以利用它:http://www.geeklee.co.uk/unprivileged-privileged-containers-ubuntu-14-04-lxc/
我登陆这个页面是因为我有同样的问题。在阅读了这个线程之后,我意识到如果没有使用sudo运行lxc不能写入通常的"/var/lib/lxc/“目录。
我环顾四周,在“~/..local/share/lxc”中找到了我的非特权容器的rootfs,并将问题中的这两行放在那个目录中的config中。
我查看了我使用的模板“lxc-下载”以获得线索,但我认为在调用"lxc-download“时传递了路径。我还没有看过系统在引导过程中是如何查找非特权容器的。
https://serverfault.com/questions/620709
复制相似问题