Docker 上的 Grafana
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
我的 dockergrafana 文件是:
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 创建容器:源 /var/lib/docker/overlay2/4ac5b487fd7fd52491b250c4afaa433801420cd907ac4a70ddb4589fdb99368b/merged/etc/grafana/grafana.ini 不是目录
错误:对于 grafana 无法为服务 grafana 创建容器:源 /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
我认为您可能以错误的方式处理此配置;
您可能需要通读这些文档:
- https://grafana.com/docs/grafana/latest/installation/docker/
- https://grafana.com/docs/grafana/latest/administration/configure-docker/
- https://grafana.com/docs/grafana/latest/administration/provisioning/
可以仅使用 bind 配置 Grafana(和 Prometheus!)
安装和环境变量(这包括安装插件,
数据源和仪表板),因此您无需构建自己的
自定义图像。
与这个特定问题无关,还有一些其他的东西
您的 docker-compose.yml
值得改变。你不应该
不再使用 links
指令...
links:
- prometheus
...因为Docker 会自动为您维护 DNS;你的容器
可以通过名称相互引用,无需额外配置。
我正在使用 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
我的 dockergrafana 文件是:
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 创建容器:源 /var/lib/docker/overlay2/4ac5b487fd7fd52491b250c4afaa433801420cd907ac4a70ddb4589fdb99368b/merged/etc/grafana/grafana.ini 不是目录
错误:对于 grafana 无法为服务 grafana 创建容器:源 /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
我认为您可能以错误的方式处理此配置; 您可能需要通读这些文档:
- https://grafana.com/docs/grafana/latest/installation/docker/
- https://grafana.com/docs/grafana/latest/administration/configure-docker/
- https://grafana.com/docs/grafana/latest/administration/provisioning/
可以仅使用 bind 配置 Grafana(和 Prometheus!) 安装和环境变量(这包括安装插件, 数据源和仪表板),因此您无需构建自己的 自定义图像。
与这个特定问题无关,还有一些其他的东西
您的 docker-compose.yml
值得改变。你不应该
不再使用 links
指令...
links:
- prometheus
...因为Docker 会自动为您维护 DNS;你的容器 可以通过名称相互引用,无需额外配置。