Grafana is a feature rich metrics dashboard and graph editor for Cloudwatch, Elasticsearch, Graphite, InfluxDB, OpenTSB, Prometheus, and Hosted Metrics. Read more on the Grafana website.
7.0.3-focal, 7.0.3, 7.0-focal, 7.0, 7-focal, 7, focal, beta - /!\ this is a beta releaseamd64, arm64, ppc64el, s390x$ docker run -d --name grafana -p 30000:3000 -e TZ=UTC squeakywheel/grafana:edge
Access your Grafana instance at localhost:30000.
| Parameter | Description |
|---|---|
-e TZ=UTC | Timezone. |
-p 30000:3000 | Expose Grafana on localhost:30000. |
-v /path/to/grafana/provisioning/files/:/etc/grafana/provisioning/ | Pass a directory with files to provision a Grafana datasource and dashboard (see documentation). |
-v /path/to/persisted/data:/var/lib/grafana | Persist data with a voulme instead of initializing a new database for each newly launched container. |
In case you need to debug what it is happening with the container you can run docker logs <name_of_the_container>. For a better experience while checking logs pass -e GF_LOG_MODE="console file" when you run the container. Alternatively, for an interactive shell run:
$ docker exec -it <name_of_the_container> /bin/bash
You can use your favorite Kubernetes distribution; if you don't have one, consider installing MicroK8s.
With microk8s running, enable the dns and storage add-ons:
$ microk8s enable dns storage
Create a configmap for the provisioning configuration files (check the Grafana documentation on how to provision a dashboard):
$ microk8s kubectl create configmap grafana-config --from-file=grafana-datasource=config/datasource.yml --from-file=grafana-dashboard-definition=config/dashboard.yml --from-file=grafana-dashboard=config/system-stats-dashboard.json
Use the sample deployment yaml provided here.
# grafana-deployment.yml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana-deployment
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
containers:
- name: grafana
image: squeakywheel/grafana:edge
volumeMounts:
- name: grafana-config-volume
mountPath: /etc/grafana/provisioning/datasources/datasource.yml
subPath: datasource.yml
- name: grafana-config-volume
mountPath: /etc/grafana/provisioning/dashboards/dashboard.yml
subPath: dashboard.yml
- name: grafana-config-volume
mountPath: /etc/grafana/provisioning/dashboards/system-stats-dashboard.json
subPath: system-stats-dashboard.json
ports:
- containerPort: 3000
name: grafana
protocol: TCP
volumes:
- name: grafana-config-volume
configMap:
name: grafana-config
items:
- key: grafana-datasource
path: datasource.yml
- key: grafana-dashboard-definition
path: dashboard.yml
- key: grafana-dashboard
path: system-stats-dashboard.json
---
apiVersion: v1
kind: Service
metadata:
name: grafana-service
spec:
type: NodePort
selector:
app: grafana
ports:
- protocol: TCP
port: 3000
targetPort: 3000
nodePort: 30000
name: grafana
$ microk8s kubectl apply -f grafana-deployment.yml
You will now be able to connect to the Grafana on http://localhost:30000.
If you find a bug in our image or want to request a specific feature file a bug here:
https://bugs.launchpad.net/ubuntu-docker-images/+filebug
In the title of the bug add grafana: <reason>.
Make sure to include:
<tag> with the one you used to run the image:$ docker images --no-trunc --quiet squeakywheel/grafana:<tag>
Content type
Image
Digest
Size
292.4 MB
Last updated
almost 6 years ago
docker pull squeakywheel/grafana:edge