我正在尝试运行一个命令,该命令需要限制在一个目录中,并在 Web 应用程序的 shell 函数中执行。
我的目标是运行该程序,但将其限制在一个目录中。每次我想运行程序时,这个目录都会改变,并且多个实例需要能够同时在不同的目录上运行。
我查看了 chroot,似乎每次都需要显式创建文件系统。我正在寻找一种更临时的解决方案,它接受所需的根目录,并且不需要我将文件复制到各处或进行奇怪的安装。
最佳答案
您最可能想要的是 containers .
容器需要几毫秒的时间来启动,并且每次运行时都会创建一个基本上完整的 chroot jail 。像 docker run --rm --volume /var/chroot/jail/whatever:/workdir ubuntu stat /workdir
这样的命令将运行stat
在 chroot jail 目录中,所有环境都是最新的 Ubuntu 版本。然后它将废弃 chroot jail 。再次运行它将创建一个全新的 jail 。
您需要将您的 Web 应用程序构建为您需要的任何 jail (Ubuntu、CentOS 等)之上的 docker 镜像,这意味着调整您的构建系统来创建这样的镜像。
关于linux - chroot 进程 jail ,每次运行时将任意目录设置为 root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784847/