docker创建disconf镜像并应用
来源:互联网 发布:中国和朝鲜的关系知乎 编辑:程序博客网 时间:2024/05/22 15:55
由于disconf的环境比较复杂,不适合使用dockerfile的方式进行创建,我们使用commit的方式进行创建。
- 启动容器
选择一个ubuntu:14.04的基础镜像,进入镜像(sudo docker run -ti -d image /bin/bash 然后用docker-enter进入容器)首先修改软件源为本地的或者国内的,这样下载比较快。
在/etc/apt/sources.list中修改,具体省略
修改时区
echo "Asia/Shanghai" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata - 软件列表
使用disconf需要基本的软件如下:
jdk、mysql、redis、zookeeper、tomcat、rabbitmq、nginx,接下去一次介绍如何安装
由于mysql需要去查看,放在容器内部不太方便(当然尽量将一个服务的软件都放入容器中进行沙盒隔离),我们这里使用外部可ping-pong的mysql - jdk
根据我们公司统一要求安装jdk1.7.0_75,将jar包拷贝至/usr/local/xxx然后解压,vi /etc/profile 在最后加上如下环境设置
# set java environment
export PATH=/usr/local/bin:$PATH;
export JDK_HOME=/usr/local/xxx/jdk1.7.0_75
export JAVA_HOME=$JDK_HOME
export JRE_HOME=$JDK_HOME/jre
export CLASSPATH=$CLASSPATH:.:$JDK_HOME/lib:$JDK_HOME/jre/lib
export PATH=$JDK_HOME/bin:$PATH;
source /etc/profile
java -version就可以看到java的版本
该jdk镜像需要经常使用,所以提交一个版本到本地私有仓库,方便以后使用
sudo docker commit -m 'add the jdk_1.7.0_75' -a 'jthink' fba497eecca1 ip:5000/ubuntu:14.04-jdk_1.7.0_75
sudo docker push ip:5000/ubuntu:14.04-jdk_1.7.0_75 - redis
apt-get install redis-server
service redis-server start - rabbitmq
apt-get install rabbitmq-server
service rabbitmq-server start - zookeeper
zookeeper我们采用3个节点的方式进行部署(同一个容器中启动3个实例)
下载zookeeper-3.4.6.tar.gz,解压成3份,分别为zookeeper-3.4.6_1、zookeeper-3.4.6_2、zookeeper-3.4.6_3,同时创建data和log文件夹保存数据和日志,这2个文件夹中都新建zoo1、zoo2、zoo3文件夹,data中的zoo1创建myid,内容为1;data中的zoo2创建myid,内容为2;data中的zoo3创建myid,内容为3;
在zookeeper的conf目录下新建zoo.cfg,内容分别为:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/soft/zookeeper/data/zoo1
dataLogDir=/home/soft/zookeeper/log/zoo1
clientPort=2181
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/soft/zookeeper/data/zoo2
dataLogDir=/home/soft/zookeeper/log/zoo2
clientPort=2182
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/soft/zookeeper/data/zoo3
dataLogDir=/home/soft/zookeeper/log/zoo3
clientPort=2183
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
然后进bin启动,./zkServer.sh start - tomcat
下载apache-tomcat-7.0.67.tar.gz,解压。配置等difconf一起配置 - nginx
apt-get install nginx
service nginx start - 部署disconf
详细参见之前的博客http://blog.csdn.net/jthink_/article/details/50538829
在宿主机上创建disconf/conf以及disconf/src文件夹分别存放配置文件以及源码,便于拷贝至容器(源码和配置会发生修改,所以将可变的配置和代码放置在宿主机上)。
注意:制作完该镜像记得提交到私有仓库,便于使用
sudo docker commit -m 'add the nginx' -a 'jthink' fba497eecca1 ip:5000/ubuntu:14.04-disconf
sudo docker push ip:5000/ubuntu:14.04-disconf - 构建disconf容器并启动
打包disconf需要安装如下软件
apt-get install python
安装maven
下载apache-maven-3.0.5-bin.tar.gz
解压(删除conf下的settings.xml,使用宿主机拷贝的配置)设置环境变量到/etc/profile
# set maven environment
export M2_HOME=/home/soft/apache-maven-3.0.5
export M2=$M2_HOME/bin
export PATH=$M2:$PATH- 创建dockerfile
# this is the docker file, use the ubuntu 14.04-disconf
# VERSION 1
# Author: jthink
# Command format: xxx xxx# the basic image, must
FROM ip:5000/ubuntu:14.04-disconf
# maintainer
MAINTAINER jthink qianjc@unionpaysmart.com
# copy the file
COPY settings.xml /home/soft/apache-maven-3.0.5/conf
COPY redis2.conf /home
COPY ./conf/application.properties /usr/local/xxx/disconf/source
COPY ./conf/jdbc-mysql.properties /usr/local/xxx/disconf/source
COPY ./conf/log4j.properties /usr/local/xxx/disconf/source
COPY ./conf/logback.xml /usr/local/xxx/disconf/source
COPY ./conf/rabbit.properties /usr/local/xxx/disconf/source
COPY ./conf/redis-config.properties /usr/local/xxx/disconf/source
COPY ./conf/zoo.properties /usr/local/xxx/disconf/source
COPY ./src/disconf /home/src
COPY run.sh /run.sh
# expose the port
EXPOSE 8991
# CMD to start
CMD ["/run.sh"] - 创建run.sh
#!/bin/bash# build the disconf
cd /home/src/disconf-web
source /etc/profile
sh deploy/deploy.sh
# start the redis-server
/usr/bin/redis-server /etc/redis/redis.conf
/usr/bin/redis-server /home/redis2.conf
# start the zookeeper
bash /home/soft/zookeeper/zookeeper-3.4.6_1/bin/zkServer.sh start
bash /home/soft/zookeeper/zookeeper-3.4.6_2/bin/zkServer.sh start
bash /home/soft/zookeeper/zookeeper-3.4.6_3/bin/zkServer.sh start
# start the tomcat
bash /home/soft/apache-tomcat-7.0.67/bin/startup.sh
# start rabbitmq, not use
# service rabbitmq-server start
# start the nginx
service nginx start
/usr/sbin/sshd -D
构建和启动
sudo docker build -t ip:5000/ubuntu:14.04-disconf-r /home/xxx/xxx/docker/images/disconf
sudo docker run -d -p 8991:8991 --name disconf-r ip:5000/ubuntu:14.04-disconf-r bash /run.sh
- 创建dockerfile
0 0
- docker创建disconf镜像并应用
- docker创建镜像并上传dockerhub
- Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像
- docker 创建镜像
- 创建 Docker 镜像
- Docker创建镜像
- Docker创建镜像
- Docker 中 安装软件并创建新的镜像
- docker 创建本地registry并push镜像
- Docker构建tomcat镜像并发布web应用
- 创建超小的golang应用Docker镜像
- Docker应用--创建带有sshd服务的Ubuntu镜像
- docker;创建/分享镜像
- docker镜像的创建
- Docker创建mysql镜像
- docker commit 创建镜像
- 创建 docker 基础镜像
- 2、Docker创建镜像
- shadowsocks
- oracle批量更新
- Linux中读取目录: opendir,fdopendir,readdir,rewinddir,closedir,telldir,seekdir
- 开始写博客啦!!
- Android学习笔记之AndroidManifest.xml文件解析
- docker创建disconf镜像并应用
- APP测试功能点总结
- 红米note4G在wind7上面链接不上的问题
- MAC OS下使用OpenSSL生成私钥和公钥的方法
- 使用getResourceAsStream 读取文件类型 .properties
- js数组去重的三种常用方法总结
- 如何在Android源码中修改BootClassPath
- 关于烂代码的那些事(上)
- html元素的CSS定位分析