1.Docker拉取现有镜像,构建Dubbo-admin

  • 拉取镜像,这里使用chenchuxin/dubbo-admin

      docker pull chenchuxin/dubbo-admin
  • 注册中心使用Consul:

      docker run -d -p 8380:8080 --name dubboAdmin -e dubbo.registry.address=consul://192.168.231.132:8500 -e dubbo.admin.root.password=root chenchuxin/dubbo-admin

    发现此镜像比较老,不支持Consul

  • 注册中心使用Zookeeper:

      docker run -d -p 8280:8080 --name dubboAdmin01 -e dubbo.registry.address=zookeeper://192.168.231.132:2181 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e dubbo.admin.root.password=root chenchuxin/dubbo-admin



    使用用户名和密码root登录

2. 拉取最新Dubbo-admin代码,构建最新控制台

  • 访问github:https://github.com/apache/dubbo-admin, 下载一份源码

  • 用idea打开项目

  • 查看dubbo-admin-ui文档

    说明:项目基于vuetify,标准的前后端分离项目

  • Dubbo-admin-ui前期准备工作

    A.安装nodejs,去nodejs官网下载安装



    安装完之后,输入命令查看是否安装成功

      Node -v
    Npm -v

    B.安装nrm包管理工具
      Npm install -g nrm

    显示所有源:

      Nrm ls

    新增源,添加淘宝镜像地址

      Nrm add Taobao https://registry.npm.taobao.org

    切换npm包源

      Nrm use Taobao

    C.安装vue和vue-cli
      npm install -g @vue
    npm install --global @vue-cli
    D.输入命令,运行admin-ui
      Npm install
    Npm run dev 开发模式运行

    输入地址,访问

3. Dubbo-admin-server编译运行

  • 参考,修改配置文件,修改zookeeper注册中心的地址,此版本也可以修改为consul,nanos,redis等注册中心

  • 修改完之后,构建,运行

    使用maven命令,运行server端
      Mvn clean package
    Mvn --projects dubbo-admin-server spring-boot:run

    通过访问8080端口,访问dubbo-admin

4. Dubbo-admin打包成docker镜像,便于部署

  • 参考dubbo-admin 0.2.0的dockerfile文件

    说明:把这些圈着的地方,改为develop版本的(dubbo-admin-develop)

  • 创建dockerfile文件,如下图:

    Dockerfile内容:
      FROM maven:3-openjdk-8
    RUN mkdir /source && wget https://github.com/apache/dubbo-admin/archive/develop.zip && unzip -q develop.zip -d /source
    WORKDIR /source/dubbo-admin-develop
    RUN mvn --batch-mode clean package -Dmaven.test.skip=true FROM openjdk:8-jre
    LABEL maintainer="dev@dubbo.apache.org"
    COPY --from=0 /source/dubbo-admin-develop/dubbo-admin-distribution/target/dubbo-admin-0.2.0-SNAPSHOT.jar /app.jar
    ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8080
    对应的修改部分,参考一下dubbo-admin的项目目录

    创建镜像文件
      docker build -t dubbo-admin:0.3.0 .
    创建容器:
      docker run -d --network=mynetwork --ip 172.18.0.21 -p 8380:8080 --name dubboAdmin02 -e admin.registry.address=zookeeper://192.168.231.132:2181 -e admin.config-center=zookeeper://192.168.231.132:2181 -e admin.metadata-report.address=zookeeper://192.168.231.132:2181 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e admin.root.user.password=root dubbo-admin:0.3.0

    注意:通过-e把环境变量填进去,填全3个,否则容器会报错,有的会连不上zookeeper,所有的环境变量都可对应配置文件的属性就行配置

    通过端口8380访问dubbo-admin

5. 第二种构建docker-admin镜像的方法

  • 把咱们本地构建好的jar包直接拷贝到dockerfile相同的目录下

  • 修改dockerfile文件内容

    内容如下:
      FROM openjdk:8-jre
    LABEL maintainer="dev@dubbo.apache.org"
    COPY dubbo-admin-0.2.0-SNAPSHOT.jar /app.jar
    ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    EXPOSE 8080
  • 直接执行命令构建image

      docker build -t dubbo-admin:0.3.1 .



    说明:构建image就省去了下载代码,构建代码的过程

  • 输入命令,创建dubbo-admin容器

    由于我构建的jar包,注册地址(zookeeper:zookeeper://192.168.231.132:2181)已经修改了,所以我们这里可以不用加环境变量构建
      docker run -d --network=mynetwork --ip 172.18.0.22 -p 8480:8080 --name dubboAdmin03 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e admin.root.user.password=root dubbo-admin:0.3.1
    通过访问地址,发现dubbo-admin也正常运行了

    我们修改下注册地址,改为consul(consul://192.168.231.132:8500),创建dubbo-admin容器:
      docker run -d --network=mynetwork --ip 172.18.0.22 -p 8480:8080 --name dubboAdmin03 -e admin.registry.address=consul://192.168.231.132:8500 -e admin.config-center=consul://192.168.231.132:8500 -e admin.metadata-report.address=consul://192.168.231.132:8500 -v /home/xujk/Work/Docker/Dubbo:/dubbo-admin -e admin.root.user.password=root dubbo-admin:0.3.1

    同样用consul作为服务注册中心,也是成功的

dubbo学习实践(1)之管理控制台Dubbo-admin部署的更多相关文章

  1. Dubbo学习总结(2)——Dubbo架构详解

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  2. Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例

    入门实例解析 第一:provider-提供服务和相应的接口 创建DemoService接口 [java] view plaincopyprint? <span style="font- ...

  3. Dubbo学习笔记11:使用Dubbo中需要注意的一些事情

    指定方法异步调用 前面我们讲解了通过设置ReferenceConfig的setAsync()方法来让整个接口里的所有方法变为异步调用,那么如何指定某些方法为异步调用呢?下面讲解下如何正确地设置默写方法 ...

  4. Dubbo学习总结(1)——Dubbo入门基础与实例讲解

    Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo是一个分布式服务框架,致力于 ...

  5. dubbo学习(三)配置dubbo API方式配置

    provider(生产者) import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.Pro ...

  6. dubbo学习实践(5)之Dubbo-Admin元数据中心配置(zookeeper&Redis&Consul)

    1.Dubbo2.7.8元数据中心配置zookeeper版 前面文章已经写到了dubbo-admin管理平台的docker版配置及dubbo服务注册与调用,这篇文章记录dubbo元数据中心配置 翻开d ...

  7. dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级

    1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...

  8. dubbo学习实践(3)之Dubbo整合Consul及Dubbo配置方式

    前言:上一篇中,已经写到了使用zookeeper为注册中心的配置,下面写下配置Consul为注册中心 1. Consul注册中心验证 修改provider和consumer的服务配置文件 Provid ...

  9. dubbo学习实践(2)之Dubbo入门Demo

    开篇之前,先来了解下dubbo服务治理与技术架构,直接看图 dubbo技术架构图: 1. 新建dubbo项目,目录结构如下 代码说明: 1.代码分为Provider(服务提供方)与consumer(服 ...

随机推荐

  1. AcWing 243. 一个简单的整数问题2

    给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1."C l r d",表示把 A[l],A[l+1],-,A[r] 都加上 d. 2."Q l r ...

  2. linux学习之路第八天(linux文件权限详解)

    建议和我上一篇博客一起通读,效果更加 1.权限的基本介绍 通过一张图片解决疑惑(重点) rwx权限详解 rwx作用到文件 1)[r]代表可读(read) :可以读取,查看 2)[w]代表可写(writ ...

  3. MySQL存储引擎——InnoDB和MyISAM的区别

    MySQL5.5后,默认存储引擎是InnoDB,5.5之前默认是MyISAM. InnoDB(事务性数据库引擎)和MyISAM的区别补充: InnoDB是聚集索引,数据结构是B+树,叶子节点存K-V, ...

  4. (精)题解 guP2860 [USACO06JAN]冗余路径Redundant Paths

    (写题解不容易,来我的博客玩玩咯qwq~) 该题考察的知识点是边双连通分量 边双连通分量即一个无向图中,去掉一条边后仍互相连通的极大子图.(单独的一个点也可能是一个边双连通分量) 换言之,一个边双连通 ...

  5. Django基础08篇 filter&tag

    1.Django自带的过滤器filter views.py中代码 def template_tags(request): import datetime content = '三胖content三胖c ...

  6. Django基础07篇 ORM操作

    1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...

  7. Tutorial_6 运行结果

    1.buyer_favorites.txt 2.代码 package mapreduce; import java.io.IOException; import java.util.Iterator; ...

  8. springboot-4-CRUD开发实战

    流程: 创建项目,勾选基本的几个开发工具还有webstarter 再创建包(service,control,config,dao,pojo) 再前往https://www.webjars.org/,选 ...

  9. React构建组件的方式

    一.是什么 组件就是把图形.非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式 在React中,一个类.一个函数都可以视为一个组件 在Vue系列中,我们了解到组件所存在的优势: 降低整个系 ...

  10. R语言客户端RStudio快捷键大全

    Console Description Windows & Linux Mac 将光标定位到控制台 Ctrl+2 Ctrl+2 清空控制台 Ctrl+L Command+L 将光标定位到行首 ...