CentOS7使用docker部署Apollo配置中心的实现

Apollo开源地址:

https://github.com/ctripcorp/apollo

第一步

将项目clone到本地,然后在github的releases页面中下载三个zip文件

本文中重点讲解截止2019年1月最新的1.2.0版本的部署方法

第二步

打开clone到本地的项目,目录结构如下

第三步

在此目录下创建docker-compose.yml文件,写入内容:

version: "3"

services:
 apollo-configservice:                     ##容器服务名
  container_name: apollo-configservice            ##容器名
  build: apollo-configservice/src/main/docker/        ##Dockerfile路径
  image: apollo-configservice             ##镜像名
  ports:
   - "9180:8080"
  volumes:
   - "/opt/logs/100003171"  ##将/opt/logs/100003171目录挂载到宿主机的/Users/mobin/opt/logs/100003171方便在宿主机上查看日志
  environment:
   - spring_datasource_url=jdbc:mysql://192.168.31.136:3306/ApolloConfigDB?characterEncoding=utf8
   - spring_datasource_username=root
   - spring_datasource_password=123456

 apollo-adminservice:
  container_name: apollo-adminservice
  build: apollo-adminservice/src/main/docker/
  image: apollo-adminservice
  ports:
   - "9181:8090"
  depends_on:
   - apollo-configservice
  volumes:
   - "/opt/logs/100003172"
  environment:
   - spring_datasource_url=jdbc:mysql://192.168.31.136:3306/ApolloConfigDB?characterEncoding=utf8
   - spring_datasource_username=root
   - spring_datasource_password=123456

 apollo-portal:
  container_name: apollo-portal
  build: apollo-portal/src/main/docker/
  image: apollo-portal
  ports:
   - "9182:8070"
  depends_on:
   - apollo-adminservice
  volumes:
   - "/opt/logs/100003173"
  environment:
   - spring_datasource_url=jdbc:mysql://192.168.31.136:3306/ApolloPortalDB?characterEncoding=utf8
   - spring_datasource_username=root
   - spring_datasource_password=123456

这里注意两点:

1.在这里,我将原本的8080,8070,8090端口分别映射到9180,9181,9182端口,因为8080等端口是常用端口,可能会和其他项目发生冲突。

2.记得修改mysql的连接地址

讲一下,这里可能有人会问为什么不用apollo项目中提供的quickstart-docker脚本,因为:

在quickstart-docker中,apollo开源项目组为了减少部署操作,内置了mysql等一系列配置,我们在使用的时候肯定不会使用内置的东西,我们希望将数据存在我们自己的mysql数据库中。还有就是quickstart-docker是为了我们方便演示使用的

第四步

将第一步下载的三个zip文件分别复制到以下目录中

<1>

<2>

<3>

注意:

这三个目录分别对应apollo-adminservice,apollo-configservice,apollo-portal服务,同时我们需要分别对这三个目录下的Dockerfile文件进行一下修改,打开Dockerfile文件

在这里,我们发现Dockerfile中指定的版本号是1.3.0-SNAPSHOT,但我们下载的zip包是1.2.0版本的,所以我们要分别对这三个Dockerfile进行版本号修改,修改好的文件如下:

第五步

登录mysql,导入下面文件夹中sql文件,进行数据库初始化

导入成功后,看到多了两个数据库

第六步

将整个项目apollo文件夹打包成zip文件,使用ftp或scp命令将文件上传到centos7服务器中,在服务器上执行以下命令

unzip apollo.zip
cd apollo
docker-compose up -d

然后看到命令输出

就表示这三个docker容器已创建成功

使用

docker ps -a

查看docker服务

发现已成功运行,现在打开浏览器,输入

http://0.0.0.0:9182

就可以看到Apollo的后台管理页面了

第七步

在第六步时,虽然部署完成但是这里有两个地方需要修改,否则会报错

1.进入apollo-portal容器

修改apollo-env环境变量

local.meta=http://localhost:9180
dev.meta=http://localhost:9180
fat.meta=http://localhost:9180
uat.meta=http://localhost:9180
lpt.meta=${lpt_meta}
pro.meta=http://localhost:9180

2.修改数据库ApolloConfigDB的ServerConfig表中的eureka.service.url字段

http://localhost:9180/eureka/

修改完成后重启apollo的三个容器即可

注意:

默认账号是apollo

默认密码admin

登录apollo后,打开系统信息页,可以看到这里有个Home Page Url,因为我们是在docker中部署的,所以这个地方显示的IP地址是有问题的,它的IP地址是Docker容器中的默认IP地址,这个地址是有问题的,因为我们在集成到项目中的时候,访问的是服务器IP,所以Docker容器中的IP地址是访问不了的,集成的时候就发现读取不了apollo的配置

官方有给出HomePageUrl的修改方法,但测试发现还是有问题的

官方的解决方案

在第3条

这里不建议直接修改HomePageUrl,最好的解决办法如下:

在Application中添加以下代码

static{
  System.setProperty("Dapollo.configService","http://192.168.X.X")
}

到此这篇关于CentOS7使用docker部署Apollo配置中心的实现的文章就介绍到这了,更多相关docker部署Apollo配置中心内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker部署apollo详细教程

    1.前言 apollo的详细介绍我就不在这里多说了,官网上https://github.com/ctripcorp/apollo 已经说的非常明白了,我就不在这班门弄斧了,还不了解的小伙伴可以去官网上去了解下. 本篇文章只是记录我在使用docker部署的Apollo以及其集群的方式,给大家分享出来也自我做一个记录. 注意: 我是直接部署开始的,有关数据库的创建和初始化自己根据官网搞定. 2.源码编译 2.1 网络策略 网络策略直接使用官网描述的就可以,具体就是分别编辑apollo-configs

  • CentOS7使用docker部署Apollo配置中心的实现

    Apollo开源地址: https://github.com/ctripcorp/apollo 第一步 将项目clone到本地,然后在github的releases页面中下载三个zip文件 本文中重点讲解截止2019年1月最新的1.2.0版本的部署方法 第二步 打开clone到本地的项目,目录结构如下 第三步 在此目录下创建docker-compose.yml文件,写入内容: version: "3" services: apollo-configservice: ##容器服务名 co

  • docker compose 一键部署分布式配置中心Apollo的过程详解

    简介 说起分布式肯定要想到分布式配置中心.分布式日志.分布式链路追踪等 在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等,都需要去维护和配置,但不可能一台台服务器登录上去配置 今天我要跟大家分享一下分布式配置中心Apollo: Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等

  • 使用Springboot整合Apollo配置中心

    Apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 官方网站 https://github.com/ctripcorp/apollo Apollo 环境搭建 详细步骤参见: https://github.com/ctripcorp/apollo/wiki/Quick-Start 官网已经很详细的说明了操作步骤.但是有很多前置条件才能完

  • SpringBoot整合Apollo配置中心快速使用详解

    目录 一.简介 二.使用 1. 测试项目搭建 2. Apollo配置中心的配置 3. 项目启动与测试 4.常见整合问题 附录 一.简介 1.Apollo 是什么?Apollo(阿波罗)是携程框架部门研发的分布式配置中心.服务端基于Spring Boot和Spring Cloud开发. 2.为什么要使用Apollo? 安全性:配置跟随源代码保存在代码库中,容易造成配置泄漏 时效性:普通方式配置,修改配置,需要重启服务才能生效 局限性:无法支持动态调整:例如日志开关.功能开关 二.使用 1. 测试项

  • Quarkus集成apollo配置中心

    目录 前言 Quarkus的config构成 microProfileconfig设计 集成apollo 前言 Quarkus默认的配置文件和spring boot 一样,默认读取application.properties文件. apollo是一个配置集中管理的开源项目,已被广泛应用. 下面我们就分析下Quarkus的配置加载结构,将apollo集成进来. Eclipse MicroProfile Config:https://github.com/eclipse/microprofile-c

  • Springboot项目如何使用apollo配置中心

    这篇文章主要介绍了Springboot项目如何使用apollo配置中心,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 引入 apollo 配置依赖 <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.1.0<

  • springboot logback如何从apollo配置中心读取变量

    目录 springboot logback 从apollo配置中心读取变量 1.在apollo配置中心添加 2.项目的application.yml配置文件配置如下 3.在logback.xml配置springProperty标签 SpringBoot Logback无法获取配置中心属性 如何解决 解决方案 springboot logback 从apollo配置中心读取变量 1.在apollo配置中心添加 logback-config.properties配置文件 2.项目的applicati

  • SpringFramework应用接入Apollo配置中心过程解析

    环境: SpringFramework:4.3.5.RELEASE apollo-client:1.5.1 1.在项目的 resources/META-INF/ 目录下添加 app.properties 文件: #Apollo配置id app.id = phpdragon-demo apollo.bootstrap.enabled = true apollo.eagerLoad.enabled = true apollo.cacheDir = /data/app_data/apollo_cach

  • Docker部署Consul配置过程解析

    执行命令 docker run -d --name consul -p 8500:8500 consul 端口说明 https://www.consul.io/docs/install/ports.html 挂载说明 /consul/data:持久化数据存储 /consul/config:配置文件 Consul 配置 https://www.consul.io/docs/agent/options.html 注意:浏览器打开 http://公网ip:8500 集群部署 启动4个Consul Ag

随机推荐