Permissions 如何在podman中设置已装入的文件夹权限 摘要
当我将一个文件夹装载到我的容器中,并且该文件夹的路径尚未在客户端上创建时,Permissions 如何在podman中设置已装入的文件夹权限 摘要,permissions,podman,rootless,Permissions,Podman,Rootless,当我将一个文件夹装载到我的容器中,并且该文件夹的路径尚未在客户端上创建时,podman将为我创建它。我可以设置主机上已装载文件夹的权限,使其与容器用户相匹配,但创建的路径文件夹没有相同的权限 复制步骤 例如,让我们假设在我的图像中,用户的主目录为空。然后我将在主机上执行以下操作: $ mkdir foo $ podman unshare chown 1000:100 foo $ podman run -v $PWD/foo:/home/myuser/bar/foo:z [...] some/im
podman
将为我创建它。我可以设置主机上已装载文件夹的权限,使其与容器用户相匹配,但创建的路径文件夹没有相同的权限
复制步骤
例如,让我们假设在我的图像中,用户的主目录为空。然后我将在主机上执行以下操作:
$ mkdir foo
$ podman unshare chown 1000:100 foo
$ podman run -v $PWD/foo:/home/myuser/bar/foo:z [...] some/image:latest
这将在我的容器上产生如下结果:
~ # ls -la
drwxr-xr-t 3 root root 4096 Jan 28 12:43 bar
~ # cd bar
~/bar # ls -la
drwxrwxr-x 2 1000 users 4096 Jan 28 12:42 foo
~/bar #
- 这种行为是故意的吗
- 有没有办法告诉podman使用与目标文件夹相同的权限创建路径
- 我可以从图像创建一个构建文件,并在构建阶段创建文件夹。但是我一直在使用不同的图像,我不想为我所有的用例创建自定义图像
- 我可以将卷装载到父文件夹,但是所有不同的内容都存储在那里,我不想将其共享到所有不同的容器
- 我无法在初次启动后处理这些容器,但我不知道何时我想重新使用这个容器,如果有的话
--uidmap
命令行选项将jupyter
用户映射到您的用户
(未经测试)
我认为,当容器以容器根用户的身份启动,然后以另一个用户的身份运行一个程序时,需要这样做。如果另一个用户将在绑定装载的目录中写入文件,则这些文件将由主机上的普通用户所有。不过,我不知道你的Jupyter容器图像是否如此
$ mkdir foo
$ jupyterUID=1234 # Replace 1234 with the correct UID for the jupyter user
$ podman run -v $PWD/foo:/home/myuser/bar/foo:z [...] --uidmap=0:1:$jupyterUID --uidmap=$(expr $jupyterUID + 1):$(expr $jupyterUID + 1):$(expr 65536 - $jupyterUID - 1) --uidmap=${jupyterUID}:0:1 some/image:latest