背景

 基于jdk1.7.0_79,tomcat7.0,镜像centos:6.9这些资源,通过命令:
docker run -it -p 8080:8080 --name tomcat -v /home/tomcat:/home/tomcat
centos:6.9 bin/bash
 创建了容器tomcat,进入容器后,进入到容器的/home/tomcat目录下,解压压缩文件,把文件移动到容器的/usr/local目录下面。vi
/etc/profile添加java与tomcat环境设置。

  上面简略构建了tomcat容器。然后退出容器:exit,执行:
docker commit tomcat centos:tomcat
  基于镜像centos:6.9镜像创建新的版本:centos:tomcat。

  本人有个项目,项目的war包是:rest.war。我把war包放入宿主机的/home/tomcat目录下,执行命令:
docker run -id -p 8081:8080 --name rest -v /home/tomcat:/home/tomcat
centos:tomcat
  创建新的容器rest并在后台运行,执行:
docker exec -it rest bash
  进入容器,进入到/home/tomcat,解压rest.war包,到rest目录下:
cd /home/tomcat mkdir rest cd rest cp ../rest.war . rm -rf ../rest.war jar
-xvf rest.war
 然后在tomcat目录下的server.xml添加如下:
<Context path="rest" docBase="/home/tomcat/rest" allowLinking="true"></Context>


上述配置完毕后,在宿主机执行命令:
docker exec -it rest /usr/local/tomcat7.0/bin/catalina.sh run
一直提示:/rest,内存泄漏(memery leak),进入容器执行启动tomcat正常。

操作

 
由于我要通过jenkins集成,上述那个是不满足我后期要求的。就进行centos:tomcat,我写了个简单的Dockerfile,在启动容器时就能启动tomcat服务。Dockerfile如下:
FROM centos:tomcat CMD /usr/local/tomcat7.0/bin/catalina.sh run
进入到Dokcerfile所在目录,执行命令:
docker build -t centos:rest .
执行成功后。执行命令:docker container ls -a,查看所有容器。执行名:docker container rm -f rest
,强制删除容器rest。

然后执行命令:docker container prune ,删除所有容器。容器删除成功后,执行命令:
docker run -id -p 8080:8080 --name rest -v /home/tomcat:/home/tomcat
centos:rest
这个时候在宿主机执行命令:ifconfig,查看宿主机ip,假如为:192.168.78.12,在浏览器输入:
http://192.168.78.12:8080/rest,能成功进入到rest的wen页面。

通过docker start rest启动web服务,通过docker stop rest
关闭web服务。这两个命令在jenkins中集成打包部署war包时,在shell中是很好用的!

以上是操作实例,在内网,无法截图,如果有问题,可以加群,进行讨论!




  

  






友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信