社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker撰写打开存储失败:运行时出现权限被拒绝错误

Mostafa Ghadimi • 6 年前 • 2050 次点击  

我正试图执行我的 docker-compose.yml 包含普罗米修斯和格拉法纳配置的文件。

这是我的 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的问题,但不幸的是,它们都没有帮助!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35418
 
2050 次点击  
文章 [ 1 ]  |  最新文章 6 年前
BMitch
Reply   •   1 楼
BMitch    6 年前

如果不需要从主机访问这些卷文件,请使用命名卷而不是主机装载。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

为了解决主机挂载的权限问题的一般解决方案,我的 docker-base 可以使用映像以及入口点以及对容器启动方式的更改来动态调整容器中的用户ID,使其与卷装入的用户ID相匹配。