[错误]: 当 spec 省略了挂载命名空间时,会将 rootfs 传播应用到主机挂载树中
作者: ARMeeru创建于 2026年9月19日更新于 2026年9月19日
当容器规范中省略了挂载命名空间时,你基仍然在准备根文件系统时将根文件系统传播到"/"。在这种情况下,"/"是主机的根目录。在`crates/libcontainer/src/rootfs/rootfs.rs`中,`prepare_rootfs`无条件地调用`mount_to_rootfs`,而`mount_to_rootfs`则在默认情况下(规范中没有`rootfsPropagation`)运行`mount(None, "/", None, MS_REC|MS_SLAVE)`,然后调用`make_parent_mount_private(rootfs)`。没有挂载命名空间时,两个调用都会进入主机挂载树,因此容器创建时会递归地删除主机上的每个挂载的对等组,并标记根文件系统父目录为私有。这会在不显示任何信息的情况下修改与主机状态无关的状态。
内容来源: youki-dev/youki