dubbo-monitor部署之Docker
2018-11-10 本文已影响0人
老鼠AI大米_Java全栈
前面我们已配置了zk集群+dubbo-admin,在dubbo环境下,我们还需要一样工具,那就是dubbo-monitor监控。
脚本参考https://github.com/ameizi/docker-hub/tree/master/dubbo-monitor-simple/2.5.4
下载dubbo-monitor
首先,网上下载dubbo-monitor-simple-2.5.3-assembly.tar.gz,解压可以看到有3个目录,bin,conf和lib,各目录作用如下
- bin:程序执行脚本
- conf:配置文件,如zookeeper
- lib:程序依赖包
接着,将该文件复制到centos安装目录中,如/home/docker。
Dockerfile
编写Dockerfile去创建镜像,方便以后部署,内容如下:
FROM openjdk:8-jre-alpine
MAINTAINER yxx <xxx@163.com>
# 更新源和时区并安装依赖包
RUN echo "http://mirrors.aliyun.com/alpine/v3.6/main" > /etc/apk/repositories \
&& echo "http://mirrors.aliyun.com/alpine/v3.6/community" >> /etc/apk/repositories \
&& apk update && apk upgrade && apk add bash tzdata --no-cache \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
#复制文件tar.gz并解压
ADD dubbo-monitor-simple-2.5.3-assembly.tar.gz /
ADD entrypoint.sh /
#创建用户下目录monitor, charts, statistics
RUN mkdir `whoami`/monitor \
&& mkdir `whoami`/monitor/charts \
&& mkdir `whoami`/monitor/statistics \
&& chmod +x /entrypoint.sh
#开放8080
EXPOSE 8080
#执行脚本
ENTRYPOINT ["/entrypoint.sh"]
entrypoint.sh
脚本文件中主要是替换配置文件内容multicast://224.5.6.7:1234
为$ZOOKEEPER
,在创建镜像实例时,通过环境变量传入即可。
#!/bin/sh
# 替换默认配置为环境变量
sed -Ei "s|multicast://224.5.6.7:1234|$ZOOKEEPER|" /dubbo-monitor-simple-2.5.3/conf/dubbo.properties
/dubbo-monitor-simple-2.5.3/bin/start.sh
bash
创建镜像
docker build --rm -t dubbo-monitor-simple:2.5.3 .
注意,后面的点。
创建完成后,可以通过docker images
查看。
创建实例
docker run \
-d \
-it \
--rm \
--name dubbo-monitor-simple \
-e ZOOKEEPER=zookeeper://xx.xx.xx.xx:2181 \
-p 9090:8080 \
dubbo-monitor-simple:2.5.3
注意,zookeeper地址为前面配置的zk集群机器地址。
相关参数如下:
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -p: 端口映射,格式为:主机(宿主)端口:容器端口
- -e username="ritchie": 设置环境变量;
启动容器后,可以打开监控http://172.19.165.222:9090/