docker-compose 挂载目录读写权限
问题 :
docker-compose 挂载目录读写权限
#### 回答:
在docker-compose文件中,你可以使用volumes
字段来挂载本地目录到容器中。 默认情况下,该目录的读写权限是由容器内的用户和组来控制的。
如果你想在容器内使用非root用户来访问这个目录,则有两种方法来设置读写权限。
一种方法是在docker-compose文件中指定用户和组。例如:
volumes:
- /path/to/local/directory:/path/to/container/directory
# 设置uid和gid,用于访问挂载目录的用户和组
- /path/to/other/local/directory:/path/to/other/container/directory:ro
# \':ro\'表示只读,如果不需要修改挂载目录中的文件,则可以使用只读模式
# 注意在此处加上 \':z\' 参数可以解决SELinux的限制 (例如:/app/data:/data:z)
# 下面是设置用户和组的相关字段
# user: \"1000:1000\" # 指定用户和组
# user: \"1000\" # 指定用户
# user: \":1000\" # 指定组
另一种方法是使用docker run
命令行选项来设置用户和组。例如:
docker run -it --user $(id -u):$(id -g) -v /path/to/local/directory:/path/to/container/directory my_image
在docker run
命令中使用--user $(id -u):$(id -g)
选项将当前主机用户的uid和gid传递给容器。容器可以使用这个uid和gid来访问挂载的目录,以实现读写权限的控制。