Docker Compose 使共享卷可写权限被拒绝

标签 docker docker-compose

我有这个写入/temp/config 的图像,我想将这些数据映射到主机中的共享卷中

docker-compose downversion: '2'

services:
  service-test:
    image: service-test:latest
    container_name: service-test
    volumes:
      - source_data:/temp/config/

volumes:
    source_data:

当我的 service-test:latest 图像尝试写入/temp/config 时,我收到 Permission Denied 错误。

问题,如何使该主机共享卷可写?

我检查了共享卷使用
docker volume inspect source_data

我注意到它没有写入功能。
这是一个基于 linux 的发行版。

更新 2:
为了验证这一点,我尝试检查共享卷的权限
我注意到它也没有写权限。
bash-4.2$ docker inspect volume service-test_source_data
[
    {
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/scratch/docker/volumes/service-test_source_data/_data",
        "Name": "configservice-test_config_data",
        "Options": {},
        "Scope": "local"
    }
]

bash-4.2$ ls -l /scratch/docker/volumes/service-test_source_data/
**drwxr-xr-x** 1 root root 0 Apr 18 01:43 _data

最佳答案

我相信您的容器正在以 root 以外的特定用户身份运行。

在你的 docker-compose.yml 你可以添加用户:root
docker-compose-reference

关于Docker Compose 使共享卷可写权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49916803/

相关文章:

windows - 在适用于 Linux 的 Windows 子系统上的 Ubuntu 上运行 Docker

Docker 容器在执行 docker run 命令时未启动

docker - 将容器的主机IP映射到虚拟主机的最佳方法是什么?

mysql - 使用正在运行的 nginx 代理在 docker 中运行 Teampass

java - 如何在某些情况下跳过 bmuschko/gradle-docker-plugin 引入的 gradle 任务?

java - 无法使用 gradle-docker-plugin 将 jar 添加到新的 Docker 镜像

docker - 是否可以不删除docker jenkins插件启动的容器?

Docker:引起:java.nio.file.FileSystemException:./conf/flow.xml.gz:资源忙

docker - 在此目录或任何 docker compose 中找不到合适的配置文件(解决方案中未添加 docker-compose 部分)

oracle - 如何检查 Oracle 是否在 Docker 中启动?