Docker-compose:挂载非root用户可用的tmpfs

时间:2018-11-27 11:11:31

标签: docker docker-compose

我正在创建docker映像,稍后将在具有严格设置的Kubernetes上使用它们:

  1. 只读文件系统
  2. 非root用户

出于测试目的,我可以在docker-compose配置中使用read_only: true模拟1)。然后,我必须为具有写活动的地方添加一些目录,例如/ run和/ var。但是,如果我尝试使用here所示的tmpfs,则该目录归root用户所有:

drwxr-xr-x 2 root root 40 Nov 27 11:05 /var

是否有使其成为drwxrwxrwx的秘密选择?有没有其他选择(除了普通磁盘目录)?

运行:

  • Docker版本18.06.0-ce
  • docker-compose版本1.8.0
  • Ubuntu 16.04

1 个答案:

答案 0 :(得分:1)

您可以指定tmpfs模式:

docker run -d \
  -it \
  --name tmptest \
  --mount type=tmpfs,destination=/app,tmpfs-mode=1770 \
  nginx:latest

https://docs.docker.com/storage/tmpfs/#specify-tmpfs-options


使用较早的2.x撰写文件语法,可以将其指定为:

version: "2.4"
services:
  my_app:
    image: my_app
    read_only: true
    restart: always
    tmpfs:
      - /run:mode=770,size=1k,uid=200,gid=10000

https://github.com/docker/cli/issues/698#issuecomment-429688027


对于3.x语法,使用长格式卷定义,您将需要解决以下问题:

https://github.com/docker/cli/issues/1285