使用 root 启动 compose 引发没有写入权限问题
今天使用 root 用户启动了一个 docker compose 工程.
1 | version: "2" |
启动的时候报错
1 | Recreating ops_service_1 ... done |
查看当前目录下的 data 文件夹权限 ls -l
:
1 | -rw-r--r-- 1 root root 189 12月 24 11:17 docker-compose.yml |
什么? 创建的文件夹权限是 root:root
是什么情况? 此时主机 data 文件夹为主机 root:root
权限, 在容器内, 即使使用容器内的 root:root
也只能当成主机的普通用户使用. 主机的普通用户对文件夹的权限为 r-x
没有写入权限.
解决方案
首先在 docker-compose.yml
中指定执行用户及用户组 1000:1000
1 | version: "2" |
手动给 data 文件夹授权
1 | sudo chown 1000:1000 ./data |
此时, 文件夹用户和用户组为 1000:1000
, 在容器内部, 使用的用户及用户组也为 1000:1000
, 二者权限相同, 问题解决.