问题标签 [systemd-nspawn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4216 浏览

containers - 如何使用 systemd-nspawn 容器(如 VirtualBox)设置嵌套的 Wayland 桌面环境

这是基于 stackoverflow 规则/鼓励分享我对标题的 hack 的问答

https://stackoverflow.blog/2011/07/01/its-ok-to-ask-and-answer-your-own-questions/

https://stackoverflow.com/help/self-answer

我可以回答我自己的问题吗?

是的!Stack Exchange 一直明确鼓励用户回答自己的问题。如果您有一个您已经知道答案的问题,并且您想公开记录该知识以便其他人(包括您自己)以后可以找到它,那么在 Stack Exchange 网站上提出并回答您自己的问题是完全可以的.

原始回购是

https://github.com/kenokabe/wayland-desktop-container

0 投票
1 回答
2671 浏览

linux - 如何将 systemd-nspawn 与 --network-veth 和 --port(-n 和 -p)一起使用?

我跑;

在容器中,httpd 有效。但是,从主机访问,它不会访问。此外,以下工作没有网络选项;

我需要使用什么选项-n,--network-veth-p, --port

0 投票
1 回答
383 浏览

linux - 可以在 systemd 容器上运行 concourse CI 吗?

我正在尝试在 systemd-nspawn 容器上运行 concourse CI,但我不能。我一直在寻找这个问题,但没有发现任何有用的东西。我将尝试解释我的工作:

  1. 首先,我制作了一个 .raw 文件,其中包含我需要的所有内容(使用 mkosi)。
  2. 我使用这个 .raw 文件(sudo systemd-nspawn -bi concourse.raw --capability=all)启动了一个 systemd 容器。concourse web 和 worker 服务启动时没有问题。我登录到 127.0.0.1:8080 并添加我的第一个管道(HelloWorld)。然后,当我运行 HelloWorld 管道时,我收到此错误:

    runc create:退出状态1:container_linux.go:264:启动容器进程导致“process_linux.go:261:为进程应用cgroup配置导致\”mkdir /sys/fs/cgroup/cpuset/8638cb95-bbbc-4719-4509- 5a1789fb100a: 只读文件系统\""

这是此错误的 journalctl 日志:concourse_worker 日志

  1. 我添加 -bind 选项并重试(sudo systemd-nspawn -bi concourse.raw --capability=all --bind=/sys/fs/cgroup)。我认为添加 --bind 选项我修复了第一个错误,因为现在 concourse 的容器能够提取 docker 图像,但我得到了其他错误:

    runc create:退出状态1:container_linux.go:264:启动容器进程导致“process_linux.go:339:容器初始化导致\”rootfs_linux.go:69:创建设备节点导致\\“没有这样的文件或目录\\” \""

这是此错误的 journalctl 日志:concourse_worker log 2

我的系统:

$ 猫 /etc/问题

Ubuntu 16.04.2 LTS \n \l

$ unname -a

Linux nikoPC 4.4.0-47-generic #68-Ubuntu SMP 2016 年 10 月 26 日星期三 19:39:52 UTC x86_64 x86_64 x86_64 GNU/Linux

$ systemctl --版本

systemd 229 +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

大厅容器:

猫 /etc/问题

Ubuntu Artful Aardvark(开发分支)\n \l

systemctl --版本

systemd 234 +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN 默认层次结构=混合

我不知道如何解决这个错误。可以在 systemd 容器上运行 concourse CI 吗?

谢谢。

0 投票
2 回答
510 浏览

bash - systemd-nspawn 发送带有引导标志的命令

在我的 Debian 开发机器中,我设置了一个 systemd-nspawn 环境来定制嵌入式 systemd。

我可以通过以下方式从脚本向该容器发送命令:

现在我需要做同样的事情,但使用-b(boot) 标志启动容器。仍然可以在脚本中执行此操作吗?

现在我手动执行以下操作:

  1. 使用 -b 标志启动 systemd-nspawn
  2. 登录
  3. 发出命令
0 投票
0 回答
106 浏览

linux - 如何使用 systemd-nspawn PXE 引导容器?

我已将我的网络环境配置为 PXE 引导 VM。我想知道是否可以 PXE 引导 systemd-nspawn 容器

0 投票
1 回答
571 浏览

ansible - 如何通过其 shell 命令在 nspawn 容器上运行 ansible?

我有几个systemd-nspawn容器,我想通过它们连接ansible并在每个容器上运行一系列脚本。

传统方式是使用 SSH 连接,我在其他环境中这样做。在这种情况下,Ansible playbook 将在未安装 SSH 的同一主机上运行的容器上运行。

是否可以配置 playbook 以便它使用shell容器的命令来运行其模块?

如果不是,我将在它们上安装 SSH,或者使用salt它将从容器中获取它的调用。

0 投票
1 回答
867 浏览

systemd-nspawn - systemd-nspawn /dev/dri/card0 权限

我正在努力/dev/dri/card0从 nspawn 容器访问但没有成功。甚至可能吗?

/etc/systemd/system/systemd-nspawn@centos7.service.d/override.conf

/etc/systemd/nspawn/centos7.nspawn

在机器中我有:

有没有办法让它工作?

0 投票
0 回答
319 浏览

ssh - 如何在远程 systemd-nspawn 容器上使用 ansible?

我在本地机器“A”上使用 ansible,操作远程主机“B”。现在我在远程主机上有容器“C1”、“C2”等。我也可以使用 ansible 来操作它们吗?即没有在每个容器中安装 sshd?

当然,我可以在每个容器中安装 sshd 并转发各自的端口。只是我想避免这种情况。

顺便提一句。所有涉及的机器都运行 Debian 9 (stable/stretch)。

蒂亚!

0 投票
0 回答
168 浏览

dhcp - 在 LAN 上使用 machinectl 作为容器管理器

我有各种容器,我想在主机上启动,并让它们立即从我的 DHCP 服务器获取 IP,就像我的裸机设备(电话、笔记本电脑、NAS 等)一样

我希望能够随意销毁这些容器,而不会在我的主机系统上留下很多垃圾(网桥、VLANS 等)。

我可以在该工作流程中使用哪些简单spinup.sh的命令?teardown.sh或者,也许一切都可以整齐地包含在 中/etc/systemd/nspawn/container-x.nspawn

注意:我专门寻找非 docker解决方案。仅依赖于 systemd 的东西

0 投票
1 回答
352 浏览

docker - Overlayfs 卷到 docker 容器

我有一组目录,我想覆盖挂载到容器中:

我可以在主机上创建一个 overlayfs 挂载,/opt/{a,b,c}并将其作为卷挂载到/usr/local容器中,但随后/usr/local/cuda将无法在容器中访问。

我可以通过systemd-nspawn以下方式直接实现这一点:

这使得所有文件都可以作为/usr/local容器中的合并挂载使用,并将更改写入/opt/c主机上。

是否可以使用 docker 轻松实现我想要的?