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"" | awk -F" " '{print $3}'`;do

     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

docker实现tomcat+jdk+msm_第1张图片

 

容器tom2 session信息

docker实现tomcat+jdk+msm_第2张图片

JSESSIONID=A4B7390062C98E719D1CBF5C198F835D-n2

 

 

docker实现tomcat+jdk+msm_第3张图片

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.*"%>

       

                tom2

       

       

                <% out.println("Hello,tom2."); %>