This project builds a Docker image for Grafana.
Start your container binding the external port 3000
.
docker run -d --name=grafana -p 3000:3000 grafana/grafana
Try it out, default admin user is admin/admin.
In case port 3000 is closed for external clients or there is no access to the browser - you may test it by issuing: curl -i localhost:3000/login Make sure that you are getting "...200 OK" in response. After that continue testing by modifying your client request to grafana.
All options defined in conf/grafana.ini can be overriden using environment
variables by using the syntax GF_<SectionName>_<KeyName>
.
For example:
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
grafana/grafana
You can use your own grafana.ini file by using environment variable GF_PATHS_CONFIG
.
More information in the grafana configuration documentation: http://docs.grafana.org/installation/configuration/
# create a persistent volume for your data in /var/lib/grafana (database and plugins)
docker volume create grafana-storage
# start grafana
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-v grafana-storage:/var/lib/grafana \
grafana/grafana
Note: An unnamed volume will be created for you when you boot Grafana,
using docker volume create grafana-storage
just makes it easier to find
by giving it a name.
Pass the plugins you want installed to docker with the GF_INSTALL_PLUGINS
environment variable as a comma seperated list. This will pass each plugin name to grafana-cli plugins install ${plugin}
.
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
grafana/grafana
The custom/
folder includes a Dockerfile
that can be used to build a custom Grafana image. It accepts GRAFANA_VERSION
and GF_INSTALL_PLUGINS
as build arguments.
Example of how to build and run:
cd custom
docker build -t grafana:latest-with-plugins \
--build-arg "GRAFANA_VERSION=latest" \
--build-arg "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" .
docker run \
-d \
-p 3000:3000 \
--name=grafana \
grafana:latest-with-plugins
# specify right tag, e.g. 2.6.0 - see Docker Hub for available tags
docker run \
-d \
-p 3000:3000 \
--name grafana \
grafana/grafana:2.6.0
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_AWS_PROFILES=default" \
-e "GF_AWS_default_ACCESS_KEY_ID=YOUR_ACCESS_KEY" \
-e "GF_AWS_default_SECRET_ACCESS_KEY=YOUR_SECRET_KEY" \
-e "GF_AWS_default_REGION=us-east-1" \
grafana/grafana
You may also specify multiple profiles to GF_AWS_PROFILES
(e.g.
GF_AWS_PROFILES=default another
).
Supported variables:
GF_AWS_${profile}_ACCESS_KEY_ID
: AWS access key ID (required).GF_AWS_${profile}_SECRET_ACCESS_KEY
: AWS secret access key (required).GF_AWS_${profile}_REGION
: AWS region (optional).
- Complete overhaul
- Plugins are now installed into ${GF_PATHS_PLUGINS}
- Building the container now requires a full url to the deb package instead of just version
- Fixes bug caused by installing multiple plugins
- Plugins dir (
/var/lib/grafana/plugins
) is no longer a separate volume
- Make it possible to install specific plugin version grafana#59 (comment)