首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动启动非特权lxc容器?

问如何自动启动非特权lxc容器?
EN

Server Fault用户
提问于 2014-08-15 14:17:58
回答 4查看 9.3K关注 0票数 12

在Ubuntu14.04上,我创建了一个非特权容器,可以手动启动和停止。

但我希望这与系统一起开始和停止。

我在容器的配置中添加了以下内容:lxc.start.auto = 1 lxc.start.delay = 5

但是,系统脚本似乎不会选择非特权容器。

在一根线上有与此相关的linuxcontainers.org,但解决方案似乎仅限于root用户。

对于非根用户(在root用户的同意下),是否有一种干净的方法可以做到这一点?

EN

回答 4

Server Fault用户

发布于 2015-04-27 20:43:28

为了解决这个问题,我编写了一个小脚本,只需按照注释的说明操作即可。

票数 2
EN

Server Fault用户

发布于 2021-02-08 12:18:18

有一种方法可以启动没有enable-linger的根用户不拥有的非特权容器。但是,应该调整系统范围内的配置文件。解决方案涉及系统,并在Ubuntu-20.04和Ubuntu-18.04上进行测试。

关键部分是PAM配置,以便为过程分配适当的subuid范围。看起来,cron配置适合于这样的目的,但它可能会导致日志混乱。让我们创建一个专用名称(它也在.service文件中使用)。/etc/pam.d/lxc-unpriv文件:

代码语言:javascript
复制
@include cron

.service文件在/etc/systemd/system/中

代码语言:javascript
复制
[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文件并将容器启动推迟到第一个请求。

票数 1
EN

Server Fault用户

发布于 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“时传递了路径。我还没有看过系统在引导过程中是如何查找非特权容器的。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/620709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档