man systemd-nspawn
说
systemd-nspawn 可用于运行命令或操作系统轻量级命名空间容器。在许多方面,它与 chroot(1) 类似,但功能更强大,因为它完全虚拟化文件系统层次结构、进程树、各种 IPC 子系统以及主机和域名。
命名空间容器只是 systemd-nspawn 的概念,还是 Linux 内核的概念?
命名空间容器和命名空间有什么关系和区别? systemd-nspawn 的命名空间容器是否作为 Linux 内核的命名空间?换句话说,命名空间容器是 systemd-nspawn 的命名空间版本吗?
docker容器是基于命名空间容器吗?
谢谢。
答案1
容器并不是一个一流的概念,由内核直接提供;它们是使用底层操作系统提供的各种功能进行组装的,包括在 Linux 上,命名空间。不同的容器运行时使用不同的功能,并且在某些情况下,同一运行时中不同容器的功能集可能有所不同。
“命名空间容器”是使用命名空间构建的容器。根据您的引用,可以想象systemd-nspawn
至少使用挂载命名空间、PID命名空间、IPC命名空间和UTS命名空间;它的联机帮助页表明它还使用系统调用过滤器和某种形式的资源限制。
Docker 容器还使用命名空间以及许多其他功能。