我正在使用Docker,我想安装一个变化很大的dyanmic文件夹(所以我不必为每个执行器生成docker,这会太昂贵),但我希望该文件夹只读.然而,将文件夹所有者更改为其他人的工作chown需要root访问权限,我不希望将其暴露给应用程序.
当我使用-vflag挂载时,它会提供我给出的任何用户名,我在docker镜像中创建了一个非root用户,但是卷中所有文件与所有者作为运行docker的用户,更改为我提供的用户命令行,所以我无法制作只读文件和文件夹.我怎么能阻止这个?
我还添加了mustafa ALL=(docker) NOPASSWD: /usr/bin/docker,所以我可以通过终端更改为另一个用户,但文件仍然拥有我的用户的权限.
Alp*_*Alp 156
您可以通过附加:ro到-v交换机来指定卷应该是只读的:
docker run -v volume-name:/path/in/container:ro my/image
Run Code Online (Sandbox Code Playgroud)
请注意,该文件夹在容器中是只读的,在主机上是读写的.
根据使用卷文档,现在有另一种使用该--mount开关安装卷的方法.以下是如何以只读方式使用它:
$ docker run --mount source=volume-name,destination=/path/in/container,readonly my/image
Run Code Online (Sandbox Code Playgroud)
以下是如何在以下位置指定只读容器的示例docker-compose:
version: "3"
services:
redis:
image: redis:alpine
read_only: true
Run Code Online (Sandbox Code Playgroud)
这是在中指定只读卷的正确方法docker-compose:
version: "3"
services:
my_service:
image: my:image
volumes:
- type: volume
source: volume-name
target: /path/in/container
read_only: true
volumes:
volume-name:
Run Code Online (Sandbox Code Playgroud)
https://docs.docker.com/compose/compose-file/#long-syntax-3
| 归档时间: |
|
| 查看次数: |
59413 次 |
| 最近记录: |