docker-compose 挂载目录读写权限

作者: cayman 分类: 杂七杂八 发布时间: 2023-05-08 23:41

问题 :

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来访问挂载的目录,以实现读写权限的控制。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注