docker compose打开存储失败:运行时出现权限被拒绝错误
我正在尝试执行我的docker compose打开存储失败:运行时出现权限被拒绝错误,docker,docker-compose,grafana,prometheus,Docker,Docker Compose,Grafana,Prometheus,我正在尝试执行我的docker compose.yml文件,该文件包含prometheus和grafana配置 这是我的docker compose.yml文件: version: '2' services: prometheus: image: prom/prometheus ports: - 9090:9090 volumes: - /prometheus:/prometheus command: - --config
docker compose.yml
文件,该文件包含prometheus和grafana配置
这是我的docker compose.yml
文件:
version: '2'
services:
prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- /prometheus:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- /var/lib/grafana:/var/lib/grafana
每当我输入docker-compose-f docker-compose.yml up
命令来运行它时,我都会遇到以下关于权限的错误:
prometheus_1 | level=error ts=2019-06-30T16:14:42.690Z caller=main.go:723 err="opening storage failed: lock DB directory: open /prometheus/lock: permission denied"
prometheus_1 | level=error ts=2019-06-30T16:26:11.897Z caller=main.go:723 err="opening storage failed: mkdir data/: permission denied"
我不知道如何解决这个问题,我已经搜索了github问题和其他stackoverflow的问题,但不幸的是,它们都没有帮助 如果不需要从主机访问这些卷文件,请使用命名卷而不是主机装载。Docker将初始化命名卷的内容,包括权限和所有权,避免出现如下权限问题:
version: '2'
volumes:
prometheus:
grafana:
services:
prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- prometheus:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- grafana:/var/lib/grafana
volumes:
- /home/user/docker-volumes/prometheus:/prometheus
对于解决主机装载权限问题的通用解决方案,可以使用“我的映像”中的fix perms脚本,以及入口点和容器启动方式的更改,动态调整容器内的用户ID以匹配卷装载的用户ID。My
docker compose up
命令持续返回以下信息:
err="opening storage failed: lock DB directory: open /prometheus/lock: permission denied"
sudo chown -R nobody:nogroup /home/user/docker-volumes/prometheus
问题是本地计算机上的文件夹结构/文件具有不正确的文件权限,当docker容器启动时,它无法写入指定位置
我通过使用以下命令递归浏览文件夹来修复此问题:
sudo chown -R nobody:nogroup <local path>
冒号表示本地文件路径:docker容器文件路径的分隔。应用我前面的chown示例,结果如下:
err="opening storage failed: lock DB directory: open /prometheus/lock: permission denied"
sudo chown -R nobody:nogroup /home/user/docker-volumes/prometheus
My
docker compose up
不再因权限被拒绝而失败 我对普罗米修斯和格拉法纳一无所知,但对我来说,你的音量似乎有问题。将普罗米修斯图像的体积设置为/prometheus。所以你应该检查你的用户是否有权限设置该目录。哇!我已经搜索了这么多网站,但你的解决方案是最好的!非常非常感谢男人:)是的,这很有帮助。谢谢你的评论,克里斯蒂安!:*