在 Windows 主机上运行的 Linux Docker 容器上的文件权限

File permissions on Linux Docker container running on a Windows host

提问人:user2268909 提问时间:11/7/2023 更新时间:11/8/2023 访问量:37

问:

我有一个关于 Windows 主机和基于 Linux 的容器之间的权限的一般问题。

假设我有一个名为 BUILD 的 ubuntu 容器,它正在 Windows 主机上运行。

BUILD 应该在 /tmp/data 中创建一堆文件。

但是,/tmp/data 是从主机文件系统挂载的。容器 Dockerfile 具有以下功能:

...
VOLUME ["/tmp/data"]
...

容器是这样启动的:

docker run -v C:\tmp\data:/tmp/data -d --name BUILDER BUILDER_IMAGE

我希望在 C:\tmp\data 中创建的文件仅供特定的 Windows 用户和/或组访问。如何确保 BUILD 创建的文件在 Windows 中具有我想要的用户权限?

Linux Windows Docker 容器 用户权限

评论


答:

2赞 AcrKnight 11/8/2023 #1

生成 Docker 容器时,添加行

USER username

将更改 docker 容器的默认用户(更改为名为 的用户)。username

但是,您应确保用户实际上具有对已装载卷的写入权限。username

然后,您可以运行带有标志的 Docker run 命令,以使在挂载目录中创建的新文件属于 。-u usernameusername

docker run -v C:\tmp\data:/tmp/data -d --name -u username BUILDER BUILDER_IMAGE

评论

0赞 user2268909 11/9/2023
效果很好,谢谢!