docker实现tomcat+jdk+msm
Docker容器docker版本 : 1.7.1
系统 版本 :CentOS release 6.8
tomcat版本 :apache-tomcat-7.0.57
memcache版本:yum安装
Docker 容器在运行里有些步骤出错会产生之类的无效镜像,产生之后直接运行脚本
删除
#cat kong.sh
#!/bin/bash
#
for I in `docker images | grep"" | awk -F" " '{print $3}'`;do
echo"none key name $I"
dockerstop $I
dockerrmi -f $I
echo$keys
done
docker images
Tomcat 配置
#cat Dockerfile
FROM centos #基础镜像来自于centos
MAINTAINER xiong #作者信息
#安装ifconfig 类型工具
RUN yum -y install net-tools
#ADD复制本地文件并自动解压至目录下
ADD apache-tomcat-7.0.57.tar.gz/usr/local/
# 运行软链接命令
RUN ln -sv /usr/local/apache-tomcat-7.0.57/usr/local/tomcat
# 定义tomcat环境变量值
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $PATH:$CATALINA_HOME/bin
#复制jdk文件到root目录并使用rpm命令安装
COPY jdk-7u79-linux-x64.rpm /root/
RUN rpm -ivh/root/jdk-7u79-linux-x64.rpm
#定义java环境变量
ENV JAVA_HOME=/usr/java/latest
ENV PATH $PATH:$JAVA_HOME/bin
# 当机器运行里自动启动,此处可省略
RUN echo"/usr/local/tomcat/catalina.sh start" >> /etc/rc.d/rc.local
# 产先配置好server.xml文件然后直接复制到conf文件目录下
COPY server.xml /usr/local/tomcat/conf/
# 复制msm文件至lib文件下
COPY mem/* /usr/local/tomcat/lib/
# 运行启动catalina.sh脚本使用run 脚本在运行之后启动并打印debug信息在使用ctrl+p ctrl+q 运行容器,否则脚本运行后之后脚本会退出
CMD["catalina.sh","run"]
Msm下载
memcached session manager
https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
memcached-session-manager-tc6-${version}.jar for tomcat6,
memcached-session-manager-tc7-${version}.jar for tomcat7
(attention: tomcat 7.0.23+) or memcached-session-manager-tc8-${version}.jar for tomcat8.
下载需要注意版本信息 并且需要注意的是版本号需要对应一致否则有可能报错
javolution-5.4.3.1.jar
memcached-session-manager-tc7-2.1.1.jar
spymemcached-2.11.1.jar
memcached-session-manager-2.1.1.jar
msm-javolution-serializer-2.1.1.jar #也可以选择其它
tomcat删除脚本
#cat del.sh
#!/bin/bash
#
docker rm -f tom{1..9}
docker rm -f mem{1..9}
docker rmi xiong
docker build -t xiong .
docker images
Memcached 配置
# cat Dockerfile
FROMcentos #基础镜像来自于centos
MAINTAINER xiong812374156@qq.com #作者信息
RUN yum -yinstall memcached net-tools #安装mem以及ifconfig 类型工具
#运行memcached命令,别使用daemon 脚本在运行完之后容器会自动退出
CMD["/usr/bin/memcached","-p","11211","-m","64","-c","1024","-u","root"]
Memcached删除脚本
# cat del.sh
#!/bin/bash
#
#
docker rm -f mem1
docker rmi mem
docker build -t mem .
配置完基础镜像运行容器,为方便我这里也定义了脚本
#cat docktest.sh
#!/bin/bash
#
# docker 运行容器名称tom2 端口本地92 容器8080 数据卷本地xx/xx/tom2/ 容器/web/apps 基础镜像
docker run -it--name tom2 -p 92:8080 -v /root/tom/tom2:/web/apps/ xiong
docker run -it--name tom3 -p 93:8080 -v /root/tom/tom3:/web/apps/ xiong
#docker 运行容器名称m2m1 端口本地201 远端11211 基础镜像
docker run -it--name mem1 -p 201:11211 mem
docker run -it--name mem2 -p 202:11211 mem
docker ps
# 测试容器memcached是否运行成功 本地运行telnet
https://s1.运维网.com/wyfs02/M02/8D/A5/wKioL1ilFLDBMnTXAAAo4BUoDcc821.png-wh_500x0-wm_3-wmp_4-s_174397445.png
容器tom2号 session信息
https://s3.运维网.com/wyfs02/M01/8D/A7/wKiom1ilFJrwV4zbAAC3niGsd7c947.png-wh_500x0-wm_3-wmp_4-s_1465351516.png
JSESSIONID=A4B7390062C98E719D1CBF5C198F835D-n2
https://s5.运维网.com/wyfs02/M01/8D/A7/wKiom1ilFH3jTqDmAACpMmwzn3k170.png-wh_500x0-wm_3-wmp_4-s_1845582411.png
JSESSIONID=A4B7390062C98E719D1CBF5C198F835D-n2
验证
Session信息一致说明成功
Service.xml文件内容
# cat server.xml
Tomcat数据卷中 tomcat 目录 index.jsp
# cat tom2/index.jsp
tom2
页:
[1]