首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git 项目推荐 | 使用 Docker 部署运行 Disconf

Git 项目推荐 | 使用 Docker 部署运行 Disconf

作者头像
码云Gitee
发布2018-03-29 11:26:58
1.5K0
发布2018-03-29 11:26:58
举报
文章被收录于专栏:开源项目开源项目开源项目
Docker-Disconf是本人学习Docker后,尝试使用Docker解决Disconf打包和运行问题的作品。 Disconf是分布式配置管理平台(Distributed Configuration Management Platform)的简称,使用该平台提供的Web界面,可以统一管理多个应用,多个环境的所有配置。Disconf是一个GitHub上的开源项目,在https://github.com/knightliao/disconf可以找到相关的源码和文档。Disconf-web 是Disconf的服务器端,提供了用于管理分布式配置的Web界面。

准备

Docker-Disconf 所使用的 Dockerfile 和配置样例可以从 https://git.oschina.net/gongxusheng/docker-disconf.git 下载。以下说明文档中的操作假设用户已经成功安装了 Docker 和 Docker-compose,并且已经把 DockerDisconf 目录下的文件夹上传到了 /home/ubuntu 目录。如果解压在了其它的目录。需要调整部分配置文件和命令。

使用Docker打包Disconf

在 disconf-build 目录中执行以下命令构建 Docker 镜像,该镜像的用于 Disconf-web 的打包:

docker build -t yourimgs/disconf-build .

在 disconf-build 目录执行以下的命令,打包 Disconf-war:

docker run -v ${PWD}/working:/home/work/dsp/disconf-rd/working \ -v ${PWD}/config:/home/work/dsp/disconf-rd/online-resources \ --name disconf-build yourimgs/disconf-build

如果修改了 properties 文件,可以通过再次启动disconf-build 容器来打包:

docker start disconf-build

Docker Compose部署运行Disconf

如下图所示,Disconf 的部署使用到了 Nginx, Tomcat, MySQL, Redis 和 ZooKeeper:

在 disconf-compose 目录中执行:

docker-compose up

所有容器启动正常以后,就可以通过 http://yourhost:8081访问Disconf-web 服务了。

Disconf客户端的配置:

首先应配置 disconf.properties 指向http://yourhost:8081。Disconf 的客户端需要访问 zookeeper,会使用 /DockerDisconf/disconf-build/config/zoo.properties 中的配置。为了统一配置,Docker-Disconf 的配置使用了 disconf-zoo:2181,因此在客户端所在的主机上需要配置 hosts 文件,将主机名 disconf-zoo 映射到 Docker 所在的服务器 ip。

非Docker Compose部署运行Disconf

【说明】本章是早期版本,操作步骤较多。推荐使用前面章节介绍的 Docker Compose 部署运行。

1) 启动一个 Redis 服务,执行

docker run --name disconf-redis -d redis:3.0

2) 启动 MySQL 服务,在 disconf-mysql 目录执行

docker run --name disconf-mysql -e MYSQL_ROOT_PASSWORD=passw0rd -v ${PWD}/files/sql:/docker-entrypoint-initdb.d \ -v ${PWD}/data:/var/lib/mysql -d mysql:5.7

3) 创建一个 ZooKeeper 服务,在 disconf-zoo 目录下执行

docker build -t yourimgs/disconf-zoo . docker run --name disconf-zoo -p 2181:2181 -d yourimgs/disconf-zoo

4) 创建应用服务器镜像,在 disconf-app 目录下执行

docker build -t yourimgs/disconf-app . docker run -d --link disconf-mysql:disconf-mysql --link disconf-redis:disconf-redis --link disconf-zoo:disconf-zoo \ -v /home/ubuntu/disconf-build/working/war:/home/work/dsp/disconf-rd/war --name disconf-app yourimgs/disconf-app

5) 在 disconf-nginx 目录下执行

docker run --name disconf-nginx -v ${PWD}/nginx.conf:/etc/nginx/nginx.conf:ro \ -v /home/ubuntu/disconf-build/working/war/html:/home/work/dsp/disconf-rd/war/html:ro \ -v ${PWD}/logs:/home/work/var/logs/disconf -d -p 8081:8081 --link disconf-app:disconf-app nginx:1.9

所有容器启动正常以后,就可以通过 http://yourhost:8081 访问 Disconf-web 服务了。 Disconf 的客户端需要访问 zookeeper,所以在配置 Disconf 的客户端时请配置 hosts 文件,将主机名 disconf-zoo 映射到 Docker 所在的服务器上。

https://gitee.com/gongxusheng/docker-disconf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Gitee 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档