一个 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"
复制我在我的其他服务的容器上看到的内容,它成功了!
我是 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"
复制我在我的其他服务的容器上看到的内容,它成功了!