环境 win10 + docker

  • (国内)更换镜像源
  • 容器间通信:docker 启动容器时给容器命名,这个名字可以被 docker 识别,用来在容器间访问
  • 容器与宿主机通信:
  • win 下路径和 Linux 中的区别
  • win 虚拟机 centos 联网问题(https://blog.csdn.net/IT_TIfarmer/article/details/85061373)

  • docker 时区问题

  1. 进容器修改:

    1. docker exec -it container-name /bin/bash
    2. date +%T -s "10:00:00"
  2. 进入容器后将主机(Linux)时区链接到容器

    1. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  3. 运行时增加参数 -e TZ=”Asia/Shanghai”

    安装 node-exporter

    1. #下载镜像
    2. docker pull prom/node-exporter
    3. #运行
    4. docker run -d -p 9100:9100 prom/node-exporter

    安装 grafana

    1. #下载镜像
    2. docker pull grafana/grafana
    3. #运行
    4. docker run -d --name=grafana -p 3000:3000 grafana/grafana

    安装后通过 localhost:3000 访问,默认用户和密码均为:admin
    首先添加数据源:(添加 Prometheus 数据源,地址为
    修改 docker 端口可以通过环境变量 -e “GF_SERVER_HTTP_PORT=3030” (https://grafana.com/docs/grafana/latest/administration/configuration/ 文档中说明了环境变量如何得到)
    常用面板:

  4. es:266(数据源同为 Prometheus,但有两种方式,一种是 es 自带的插件,一种是独立的 exporter,针对这两种有不同的面板,此处为支持 es 自带插件的面板)/ 6483(justwatch/es_exporter)

  5. jvm / spring:4701 / 6756( 6756 面板需要修改环境变量 application 和 instance )

    1. # application
    2. label_values(application)
    3. # instance
    4. label_values(jvm_memory_used_bytes{application="$application"}, instance)
  6. Mysql:MySQL Overview 下载号:7362

  7. Node:Node Exporter for Prometheus Dashboard EN v20201010 下载号:11074

    安装 Prometheus

    prometheus 配置文件,docker 下对应路径:/etc/prometheus/prometheus.yml 增加配置:
    容器内访问宿主机服务问题

    其中 host.docker.internal 是容器对本地 localhost 地址的映射,后为 spring 应用的端口号 PS:这种方式似乎只在 win 下有用,centos 服务器上无效

  1. - job_name: 'spring-promethus'
  2. metrics_path: '/actuator/prometheus'
  3. static_configs:
  4. - targets:
  5. - host.docker.internal:4000

查看容器 docker 虚拟网卡的地址,用这个地址可以访问到宿主机

  1. # 列出网卡信息
  2. > ifonfig
  3. # 或者直接查看网卡信息 此处 docker0 为网卡名
  4. > ip addr show docker0

安装启动:

  1. #下载镜像
  2. docker pull prom/prometheus
  3. #运行
  4. # !!! 此处注意 -v 参数后的文件路径在 win 和 Linux 下的区别 /usr/local/src/file/prometheus.yml !!!
  5. sudo docker run -d -p 9090:9090 -v /D/dockerData/prometheus.yml:/usr/local/src/file/prometheus.yml prom/prometheus --config.file=D/dockerData/prometheus.yml

监控 MySQL

  1. docker pull prom/mysqld-exporter
  2. docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="isp:Insteko_666@(host.docker.internal:3306)/" prom/mysqld-exporter

es

  1. # install
  2. docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2
  3. # run
  4. docker run -p 9200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2

监控 es

es 的 exporter 选取 https://github.com/justwatchcom/elasticsearch_exporter

  1. # 安装
  2. docker pull justwatch/elasticsearch_exporter:1.1.0
  3. # 运行
  4. docker run --rm -p 9114:9114 justwatch/elasticsearch_exporter:1.1.0

Prometheus 配置中增加

  1. - job_name: 'elasticsearch'
  2. metrics_path: '/metrics'
  3. static_configs:
  4. - targets:
  5. - host.docker.internal:9114

利用 es 插件监控 es

https://github.com/vvanholl/elasticsearch-prometheus-exporter
插件依赖 es 自身版本,必须下载指定版本的插件
针对插件的 Prometheus 配置:

  1. - job_name: 'elasticsearch'
  2. metrics_path: '/_prometheus/metrics'
  3. static_configs:
  4. - targets:
  5. - host.docker.internal:9220

安装 docker-compose

https://docs.docker.com/compose/install/

  1. sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /data/bytesforce/docker-compose chmod +x /data/bytesforce/docker-compose