繁体   English   中英

Docker 上的格拉法纳

[英]Grafana on Docker

我正在使用 docker 来运行 prometheus、grafana 和节点导出器。 我正在尝试使用命名卷,但我遇到了一些问题。 我的 docker-compose 代码是:

version: "3.7"
volumes:      
    grafana_ini:
    
    prometheus_data:
    
    grafana_data:
    
    dashboards_data:
    
services:
  grafana:
    build: ./grafana
    volumes:
            - grafana_ini:/etc/grafana/grafana.ini
            - grafana_data:/etc/grafana/provisioning/datasources/datasource.yml
            
            - dashboards_data:/etc/grafana/provisioning/dashboards
            - ./dashboards/linux_dashboard.json:/etc/grafana/provisioning/dashboards/linux_dashboard.json
    ports:
      - 3000:3000
    links:
            - prometheus
  prometheus:
    build: ./prometheus
    volumes:
            - prometheus_data:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090
  node-exporter:
    image: prom/node-exporter:latest
    container_name: node_exporter
    restart: unless-stopped
    expose:
      - 9100

我的 grafana dockerfile 是:

FROM grafana/grafana:latest
COPY ./Ini/grafana.ini /etc/grafana/grafana.ini
COPY datasource.yml /etc/grafana/provisioning/datasources/datasource.yml
COPY ./dashboards/dashboard.yml /etc/grafana/provisioning/dashboards
COPY ./dashboards/server/linux_dashboard.json /etc/grafana/provisioning/dashboards
COPY ./dashboards/server/windows_dashboard.json /etc/grafana/provisioning/dashboards
EXPOSE 3000:3000

我在构建它时遇到了这个错误

错误:对于 2022_grafana_1 无法为服务 grafana 创建容器:source /var/lib/docker/overlay2/4ac5b487fd7fd52491b250c4afaa433801420cd907ac4a70ddb4589fdb99368b/merged/etc/grafana/grafana.ini 不是目录

错误:for grafana 无法为服务 grafana 创建容器:source /var/lib/docker/overlay2/4ac5b487fd7fd52491b250c4afaa433801420cd907ac4a70ddb4589fdb99368b/merged/etc/grafana/grafana.ini 不是目录

谁能帮帮我。

看起来您的 Grafana 容器中的卷配置存在一些问题:

首先,我认为这只是您问题中的错字:

      - grafana_ini:/etc/grafana/grafana.inianticipated location in container

我怀疑您实际上是有意这样做的:

      - grafana_ini:/etc/grafana/grafana.ini

这没有任何意义: grafana.ini是一个文件,但卷是一个目录。 Docker 不允许您在文件顶部挂载目录,因此出现错误:

ERROR: .../etc/grafana/grafana.ini is not directory

grafana_data卷也有同样的问题,您试图将其安装在datasource.yml之上:

      - grafana_data:/etc/grafana/provisioning/datasources/datasource.yml

我认为您可能以错误的方式接近此配置; 您可能需要通读这些文档:

可以仅使用绑定安装和环境变量(包括安装插件、数据源和仪表板)来配置 Grafana(和 Prometheus)。 因此您无需构建自己的自定义图像。


与这个特定问题无关,您的docker-compose.yml中还有其他一些值得更改的内容。 你不应该再使用links指令......

    links:
      - prometheus

...因为 Docker 自动为您维护 DNS; 您的容器可以通过名称相互引用,无需额外配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM