一个 docker 个容器的权限被拒绝

Permission denied on one docker container

我是 docker 的新手,我正在使用 Loki 和 Grafana 构建一个简单的仪表板应用程序。

我正在尝试更改 Grafana 容器中的 Grafana 安装文件,但是,它显示“权限被拒绝”。我在多个位置的容器中尝试了 mkdir test,但它们都被拒绝了权限,所以我知道这是一个权限问题。对于我的整个存储库,我有 4 个独立的容器。所有其他容器都不会被拒绝权限,只有 Grafana 容器。此外,我的旧 Ubuntu VM 已损坏,但旧 VM 也没有获得拒绝权限,所以我不确定为什么新的是。

我试过了运行:

sudo chmod -R a+rwx repo

为所有内容提供权限。我通过右键单击它们检查了所有卷权限,它们都是所有者,组和其他人的“创建和删除文件”。

在 docker 容器上,我 运行 权限检查并得到:

但是,其他容器具有类似的权限。

我也运行id上了容器。对于没有权限的容器,我得到: 对于不起作用的那个。

有效的 return

完整的 docker-compose 代码可以在这里找到:

version: "3"

networks:
  bypass:

services:

  loki:
    image: grafana/loki:2.4.0
    volumes:
      - ./admin/config:/mnt/config
      - ./data/loki:/mnt/loki
    ports:
      - "3100:3100"
    command: -config.file=/mnt/config/loki-config.yaml
    restart: unless-stopped
    networks:
      - bypass

  promtail:
    image: grafana/promtail:2.4.0
    volumes:
      - ./data/raw:/mnt/raw
      - ./data/log:/mnt/log
      - ./admin/config:/mnt/config
    command: -config.file=/mnt/config/promtail-config.yaml
    restart: unless-stopped
    networks:
      - bypass

  bypass:
    image: bypass:latest
    ports:
      - "8080:8080"
    volumes:
      - ./data/raw:/mnt/raw
      - ./data/log:/mnt/log
      - ./admin/config:/mnt/config
      - ./data/template:/mnt/template
    networks:
      - bypass

  grafana:
    image: grafana/grafana:8.2.5
    user: "1000"
    volumes:
      - ./data/grafana:/var/lib/grafana
      - ./data/log:/var/lib/temp_data
    restart: unless-stopped
    ports:
      - "3000:3000"
    networks:
      - bypass

问题在用户下。我尝试指定

user: "1000"

在 grafana docker-compose 因为当我本地机器上的 运行 id 时,它说用户和组的 UID 都是 1000。尽管如此,我不得不改变用户

user: "0"

复制我在我的其他服务的容器上看到的内容,它成功了!