Docker容器
docker版本 : 1.7.1
系统 版本 :CentOS release 6.8
tomcat版本 :apache-tomcat-7.0.57
memcache版本:yum安装
Docker 容器在运行里有些步骤出错会产生
删除
[root@1xx tom]#cat kong.sh
#!/bin/bash
#
for I in `docker p_w_picpaths | grep"
echo"none key name $I"
dockerstop $I
docker rmi -f $I
echo$keys
done
docker p_w_picpaths
Tomcat 配置
[root@1xx tom]#cat Dockerfile
FROM centos #基础镜像来自于centos
MAINTAINER xiong <[email protected]> #作者信息
#安装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删除脚本
[root@1xxtom]#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 p_w_picpaths
Memcached 配置
[root@1xx memcached]# cat Dockerfile
FROMcentos #基础镜像来自于centos
MAINTAINER [email protected] #作者信息
RUN yum -yinstall memcached net-tools #安装mem以及ifconfig 类型工具
#运行memcached命令,别使用daemon 脚本在运行完之后容器会自动退出
CMD["/usr/bin/memcached","-p","11211","-m","64","-c","1024","-u","root"]
Memcached删除脚本
[root@1xxmemcached]# cat del.sh
#!/bin/bash
#
#
docker rm -f mem1
docker rmi mem
docker build -t mem .
配置完基础镜像运行容器,为方便我这里也定义了脚本
[root@1xx tom]#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
容器tom2号 session信息
JSESSIONID=A4B7390062C98E719D1CBF5C198F835D-n2
JSESSIONID=A4B7390062C98E719D1CBF5C198F835D-n2
验证
Session信息一致说明成功
Service.xml文件内容
[root@1xx tom]# cat server.xml
type="org.apache.catalina.UserDatabase"
description="User databasethat can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
connectionTimeout="20000"
redirectPort="8443"/>
resourceName="UserDatabase"/>
memcachedNodes="n1:192.168.8.101:201,n2:192.168.8.101:202"
failoverNodes="n1"
storageKeyPrefix="context"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
/>
prefix="app_access_log"suffix=".txt"
pattern="%h %l %u %t"%r" %s %b" />
Tomcat数据卷中 tomcat 目录 index.jsp
[root@1xx tom]# cat tom2/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*"%>
<% out.println("Hello,tom2."); %>