抽象的
当我将文件夹挂载到我的容器并且尚未在客户端上创建文件夹的路径时,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 创建与目标文件夹具有相同权限的路径?
我可以想象一个解决方法,但如果我能在运行命令中告诉它会很好。
用例
就我而言,我尝试直接从 docker.io 将不同的 jupyter 笔记本作为一次性容器运行。但我确实想分享用户设置。容器挂载卷时,用户设置文件夹不存在。所以 podman 将创建它们,但以 root 身份创建。所以jupyter用户无法访问podman创建的文件夹,会失败。
- 我可以从图像创建一个 Buildfile 并在 buildphase 创建文件夹。但是我一直使用不同的图像,我不想为我的所有用例创建自定义图像。
- 我可以将卷挂载到父文件夹,但是各种不同的东西都存储在那里,我不想将它共享给所有不同的容器。
- 初次启动后我无法处理这些容器,但我不知道我什么时候想重用这个容器,如果有的话......