Docker-Compose日志挂载与文件权限配置技术咨询
Docker Compose配置相关问题解答
问题1解答
你的理解完全正确。volumes字段里的/services/logs/auth:/logs配置属于绑定挂载,作用就是将宿主机的/services/logs/auth目录与容器内的/logs目录关联起来,两者的内容会双向同步——容器内/logs目录的文件会出现在宿主机对应路径,宿主机该目录的文件也会被容器读取到。
问题2解答
Docker Compose没有直接指定容器内创建文件权限的配置项,但可以通过以下几种方式实现让log.txt权限为-rw-rw----(对应权限值660):
- 修改应用/镜像配置:直接调整容器内应用的日志生成逻辑,让它创建文件时使用
660权限,这是最彻底的方案。 - 通过启动命令设置umask:在
docker-compose.yml的auth服务中添加command字段,先设置umask再启动应用,示例:
umask值services: auth: # 其他配置保持不变 command: sh -c "umask 0007 && exec /path/to/your/auth/application"0007意味着创建文件时会从默认权限(666)中减去对应位,最终得到660权限。 - 提前配置宿主机挂载目录的默认权限:如果宿主机的
/services/logs/auth目录已存在,先在宿主机执行以下命令设置目录的默认ACL和权限,让后续创建的文件自动继承rw-rw----权限:chmod 770 /services/logs/auth setfacl -d -m u::rw,g::rw,o::- /services/logs/auth
内容的提问来源于stack exchange,提问作者Роман Янин
相关产品推荐
相关产品推荐

