gpt4 book ai didi

go - 容器和系统调用.CLONE_NEWNS

转载 作者:IT王子 更新时间:2023-10-29 01:12:35 25 4
gpt4 key购买 nike

我正在这个 repo 上运行 golang 代码 https://github.com/lizrice/containers-from-scratch/blob/master/main.go我遇到了挂载命名空间的问题。代码应该做的是在它自己的挂载命名空间中创建一个进程。因此,如果我使用 sudo go run main.go run/bin/bash 运行代码并在目录 mytemp 中创建一个文件,我应该能够看到该文件从新启动的进程中,但如果我尝试查看该文件移动到主机上的 rootfs 目录,由于挂载命名空间,我不应该能够看到该文件。不幸的是我仍然看到这个文件,所以我运行的进程似乎没有挂载命名空间。为了运行代码,我使用了这个 https://github.com/ericchiang/containers-from-scratch/releases/download/v0.1.0/rootfs.tar.gz作为 rootfs 并将其移动到 /home/me 下。然后我创建了一个 mytemp 目录用作 tmpfs 挂载目标。对于进程未挂载命名空间的原因,您有什么想法吗?

谢谢!

最佳答案

这个问题可以通过将主机挂载配置为私有(private)来解决,不接收任何传播事件或将任何传播事件转发到其他挂载,参见 RedHat - Sharing Mounts .

这个命令应该在你创建容器之前在你的主机上执行:

$ mount --make-rprivate /

关于go - 容器和系统调用.CLONE_NEWNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44764400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com