centos7 docker容器目录(CentOS7使用docker部署Apollo配置中心的实现)
centos7 docker容器目录
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配置中心内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- docker容器启动失败怎么查找原因(解决docker容器启动后马上退出的问题)
- docker-compose启动超时(docker compose idea CreateProcess error=2 系统找不到指定的文件的问题)
- 查看docker容器进程运行状态命令(docker容器内要启动两个进程时Dockerfile的实现代码)
- docker怎么设置redis(docker安装redis并以配置文件方式启动详解)
- docker compose 与docker区别(windows安装Docker与docker-compose套装的详细教程)
- docker如何访问nginx(基于docker启动nginxssl配置)
- docker自动执行镜像(docker实现重新打tag并删除原tag的镜像)
- docker测试环境搭建(docker环境搭建JMeter+Grafana+influxdb可视化性能监控平台的教程)
- docker容器使用redis服务(在Docker中使用Redis的步骤详解)
- docker默认网络模式(Docker 网络模式及配置方式)
- docker的漏洞(一次docker错误的耗时排查过程记录)
- docker镜像保存教程(docker镜像导入导出备份迁移的操作)
- 远程给docker容器执行命令(Docker命令让普通用户能够执行的实现)
- docker搭建方法(超简单实现Docker搭建个人博文系统)
- docker 容器运行的数据在哪里(docker容器的几种存储详解)
- 运行docker时提示端口已被占用(docker 突然不能被外网访问的解决方案)
- 马来西亚旅游攻略(马来西亚旅游攻略自由行攻略)
- 缅甸旅游攻略(缅甸旅游攻略必去景点推荐)
- 《庆余年2》新消息,原班人马,肖战特别出演,这才是最好的安排(庆余年2新消息原班人马)
- 宁夏灵武恐龙化石发现始末(宁夏灵武恐龙化石发现始末)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
热门推荐
- html5列表与布局(HTML5逐步分析实现拖放功能的方法)
- SQL Server 表变量的用法
- python最基本的编程工具(5款Python程序员高频使用开发工具推荐)
- mysql开启事务没有提交(MySQL 事务autocommit自动提交操作)
- centos中安装sql图(CentOS 7.3上SQL Server vNext CTP 1.2安装教程)
- docker怎么设置远程访问(Docker开启远程访问的实现方式)
- SqlTransaction事务的用法
- win7redis安装教程(Docke中安装redis的方法)
- 如何设置tomcat的jvm(Tomcatc3p0配置jnid数据源2种实现方法解析)
- 服务器虚拟化需要哪些技术(认识云服务器的虚拟化实现途径)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9