Docker,将卷挂载为只读
我正在使用Docker,并且我想挂载一个变化很大的动态文件夹(因此我不必为每次执行都制作一个Docker映像,这会太昂贵),但是我希望该文件夹是只读的。将文件夹所有者更改为其他人可行。但是,chown
需要root
访问权限,而我不希望将其公开给应用程序。
当我使用-v
flag进行挂载时,它将提供我提供的任何用户名,我在docker映像内创建了一个非root用户,但是,该卷中的所有文件都以运行docker的用户作为所有者,更改为我从命令行给,所以我不能制作只读文件和文件夹。我该如何预防?
我还添加了mustafa ALL=(docker) NOPASSWD:
/usr/bin/docker,因此我可以通过终端更改为另一个用户,但是文件仍然具有我的用户的权限。
回答:
您可以通过附加:ro
到-v
开关来指定卷应为只读:
docker run -v volume-name:/path/in/container:ro my/image
请注意,文件夹然后在容器中是只读的,并且在主机上是可读写的。
2018编辑
根据“ 使用卷”文档,现在存在另一种通过使用--mount
交换机挂载卷的方法。这是通过只读方式使用的方法:
$ docker run --mount source=volume-name,destination=/path/in/container,readonly my/image
码头工人组成
这是一个示例,该示例如何在中指定只读容器docker-compose
:
version: "3"services:
redis:
image: redis:alpine
read_only: true
以上是 Docker,将卷挂载为只读 的全部内容, 来源链接: utcz.com/qa/435177.html