一、参考资源:https://grafana.com/docs/grafana/latest/installation/docker/

二、过程

1、安装grafana

查看可用image

[root@DL ~]# docker search grafana

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
grafana/grafana The official Grafana docker container 1484

拉取grafana镜像:

[root@DL ~]# docker pull grafana/grafana

2、运行grafana:

[root@DL ~]# docker run -d -p 3000:3000 --name=grafana grafana/grafana

3、登录web:http://192.168.0.202:3000/login    #初始登录参数:admin/admin

至此,基本安装完成,但是,考虑到一旦docker容器停止,其存储的数据就会丢失,因此还需要进行数据的持久化工作。

使用“docker inspect grafana”(其中的grafana是容器名称)命令查看grafana容器内的配置,可以看到如下环境变量信息:

"Env": [
"PATH=/usr/share/grafana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GF_PATHS_CONFIG=/etc/grafana/grafana.ini",
"GF_PATHS_DATA=/var/lib/grafana",
"GF_PATHS_HOME=/usr/share/grafana",
"GF_PATHS_LOGS=/var/log/grafana",
"GF_PATHS_PLUGINS=/var/lib/grafana/plugins",
"GF_PATHS_PROVISIONING=/etc/grafana/provisioning"

分析上述环境变量信息得知,需要把容器内的/etc/grafana、/var/lib/grafana、/var/log/grafana三个目录挂载到宿主机上以确保数据不随容器的停止而消失。

4、宿主机新建3个目录

mkdir -p /root/grafana/conf

mkdir -p /root/grafana/data

mkdir -p /root/grafana/log

5、在前述运行的grafana系统中,把上述三个目录内的文件和目录全部拷贝到宿主机中。

[root@DL ~]# docker cp grafana:/etc/grafana/. /root/grafana/conf

[root@DL ~]# docker cp grafana:/var/lib/grafana/. /root/grafana/data

[root@DL ~]# docker cp grafana:/var/log/grafana/. /root/grafana/log

6、修改宿主机新建目录的所有者为grafana(这一步很重要,若缺乏所有者权限配合,grafana页面在登录时就会出错,无法登录)

(1)宿主机新增用户grafana,并修改UID和GID都为472(因为容器内的运行用户也是grafana,且UID和GID都是472)

useradd grafana

vi /etc/passwd

...

grafana:x:472:472::/home/grafana:/bin/bash

vi /etc/group

...

grafana:x:472:

(2)修改grafana目录所有者为grafana

[root@DL ~]# chown -R grafana:grafana  grafana

[root@DL ~]# ls -lhat
...
drwxr-xr-x. 5 grafana grafana 41 5月 22 20:59 grafana

[root@DL ~]# ls -lhat grafana
总用量 4.0K
drwxr-xr-x. 5 grafana grafana 41 5月 22 20:59 .
drwxr-xr-x. 2 grafana grafana 6 5月 22 20:59 log
drwxr-xr-x. 4 grafana grafana 50 5月 22 20:55 data
dr-xr-x---. 18 root root 4.0K 5月 22 20:06 ..
drwxr-xr-x. 2 grafana grafana 45 5月 22 19:57 conf

7、编制docker运行命令

vi grafana.sh

内容如下:

docker run -d --name grafana -p 3000:3000 -v /root/grafana/conf:/etc/grafana -v /root/grafana/data:/var/lib/grafana -v /root/grafana/log:/var/log/grafana grafana/grafana

8、为grafana.sh添加执行权限

chmod +x grafana.sh

9、运行grafana.sh

./grafana.sh

三、测试

web登录:http://192.168.0.202:3000/

四、小结:

1、docker安装grafana虽然比较方便,但是,有些问题是必须高度关注的,如grafana容器内系统本身是以grafana用户身份运行的,对应的挂载目录的权限也必须调整为grafana权限。

2、在安装测试过程中用到docker一些命令配合调试工作,比较有用,这里列出如下:

docker stop grafana   #停止grafana容器,对应有start和restart来启动和重启容器。

docker rm grafana   #删除grafana容器,以便后续新建同名容器

docker container prune  #删除运行异常的全部容器,运行异常就是直接使用 docker ps或docker container ls无法列出的容器。

docker ps -a 或 docker container ls -a   #列出所有容器,包括运行异常的容器。

docker inspect grafana   #查看容器grafana的配置详情,包括容器id号,挂载信息,环境变量、主机名称等等。因为其内容较多,可使用管道符到处到文件做更细致分析,如 docker inspect grafana > grafana.txt

docker exec -it grafana /bin/bash   或  docker exec -it grafana /bin/sh       #进入容器grafana内的console状态,以便查探容器内的文件系统。

3、关于显示时区问题,grafana的web界面已提供本地时间显示功能(可选),因此,不用调整docker容器的时区。

五、待验证的运行方法:

https://grafana.com/docs/grafana/latest/installation/configure-docker/

If you do not designate a location for information storage, then all your Grafana data disappears as soon as you stop your image. To save your data, you need to set up persistent storage or bind mounts for your container.

(1)Run Grafana container with persistent storage (recommended)
# create a persistent volume for your data in /var/lib/grafana (database and plugins)
docker volume create grafana-storage

上述命令可生成一个docker volume,使用命令docker volume inspect grafana-storage 或 docker inspect grafana-storage查看详情,如存储位置:

"Mountpoint": "/var/lib/docker/volumes/grafana-storage/_data"

# start grafana

docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana

(2)Run Grafana container using bind mounts
You may want to run Grafana in Docker but use folders on your host for the database or configuration. When doing so, it becomes important to start the container with a user that is able to access and write to the folder you map into the container.

mkdir data # creates a folder for your data
ID=$(id -u) # saves your user id in the ID variable

# starts grafana with your user id and using the data folder
docker run -d --user $ID --volume "$PWD/data:/var/lib/grafana" -p 3000:3000 grafana/grafana:5.1.0

docker环境下的Grafana安装的更多相关文章

  1. Elasticsearch Docker环境下安装

    Elasticsearch Docker环境下安装 Daemon镜像配置的是https://registry.docker-cn.com Linux:vi /etc/docker/daemon.jso ...

  2. Nginx系列(8)- Nginx安装 | Docker环境下部署

    Docker环境下部署Nginx https://www.cnblogs.com/gltou/p/15186971.html

  3. Docker环境下的Mysql8 实现主从数据库数据同步方案

    本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...

  4. docker环境下solrcloud+zookeeper集群部署教程

    前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...

  5. 如何在 Docker 环境下自动给 .NET 程序生成 Dump

    前言 之前"一线码农"大佬有写文章介绍了如何在 windows 下自动 dump,正好手里有个在 docker 环境下 dump 的需求,所以在参考大佬文章的基础上,有了本篇. ​ ...

  6. Docker环境下运行python+selenium+chrome

    Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...

  7. Windows环境下MongoDB的安装与配置

    MongoDB是一种高性能的文档型数据库,现介绍一下在Windows环境下MongDB的安装与配置 获取MongoDB 打开官方网站 www.mongodb.org,找到页面右上解的DownLoad链 ...

  8. window环境下glog的安装

    window环境下glog的安装 分类: c++2014-09-23 14:12 32人阅读 评论(0) 收藏 举报 下载后解压,利用Visual Studio打开google-glog.sln.生成 ...

  9. Linux环境下Python的安装过程

    Linux环境下Python的安装过程 前言 一般情况下,Linux都会预装 Python了,但是这个预装的Python版本一般都非常低,很多 Python的新特性都没有,必须重新安装新一点的版本,从 ...

随机推荐

  1. 阿里云函数计算上部署.NET Core 3.1

    使用阿里云ECS或者其他常见的VPS服务部署应用的时候,需要手动配置环境,并且监测ECS的行为,做补丁之类的,搞得有点复杂.好在很多云厂商(阿里云.Azure等)提供了Serverless服务,借助于 ...

  2. 单调队列+二分 G - Queue 小阳买水果

    B. Queue 这个题目会做的很偶然,突然想到的,因为我们要求离这只海象的最远的比他年轻的海象,这个年轻的海象可以用单调栈维护. 就是从前往后遍历一遍,单调栈里面存年龄从小往大的海象,这个为什么这么 ...

  3. Java常见的集合的数据结构

    数据结构 数据结构__栈:先进后出 栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加.查找.删除等操作. 简单的说:采用该结构的 ...

  4. 如何在Windows下安装MySQL5和MySQL8的多实例

    MySQL5和MySQL8多实例安装方法: 1.首先下载MySQL5和MySQL8 官方下载链接:https://dev.mysql.com/downloads/mysql/  下载旧版本: 下载好后 ...

  5. SpringCloud 踩坑之 注册中心绑定端口一直是8080

    今天在启动注册中心服务时,突然端口一直是8080,找了好久一直没找到原因,先看看我有问题的配置 spring: application: name: eureka-server profiles: d ...

  6. spring学习笔记(六)自定义spring-boot-starter(2)

    上篇文章我们主要讲了spring自动装配的原理,我们知道了springboot在启动的时候会自动去读.factories文件,在factories文件中,autoConfiguration对应的就是我 ...

  7. JAVA知识总结(三):继承和访问修饰符

    今天乘着还有一些时间,把上次拖欠的面向对象编程三大特性中遗留的继承和多态给简单说明一下.这一部分还是非常重要的,需要仔细思考. 继承 继承:它是一种类与类之间的关系,通过使用已存在的类作为基础来建立新 ...

  8. 永磁同步电机 spmsm 和 ipmsm 的区别总结

    layout: post tags: [motor control] comments: true 永磁同步电机的分类 永磁同步电机根据转子上永磁体的位置不同,可以分为: 表贴式永磁同步电机--S-P ...

  9. JDBC06 其他操作及批处理Batch

    灵活指定SQL语句中的变量 -PreparedStatement 对存储过程进行调用 -CallableStatement 运用事务处理 -Transaction 批处理 -Batch -对于大量的批 ...

  10. 单线程和多线程执行对比—Python多线程编程

    单线程和多线程执行对比 本章使用递归求斐波那契.阶乘与累加函数的执行来对比单线程与多线程: 斐波那契.阶乘与累加(mtfacfib.py): ​ import threading from time ...