本文直接讲解如何在Docker容器中实战部署一个Web应用程序,关于Docker相关的概念和如何安装Docker请参考相关资料完成。 第一步:工具准备 演示如何在Docker容器中部署一个Java Web应用程序,需要准备的软件工具包括:jre,tomcat和webapp应用。另外,为了实现在容器启动时自动启动webapp,需要编写一个脚本工具完成该工作。 安装jre,请参考:http://www./Install-Java-on-Linux 安装tomcat,请参考:http://blog.csdn.net/williamcs/article/details/8579957 如何在tomcat中部署webapp,请参考: http://tomcat./tomcat-7.0-doc/deployer-howto.html http://www.cnblogs.com/zengsong-restService/archive/2013/01/04/2844568.html jre1.8.0_31.tar.gz // 可以选择其他版本 apache-tomcat-6.0.35.tar.gz // 可以选择其他版本 MyWeb.war // 自己写一个web应用即可,才发现csdn不允许上传附件 start_tomcat.sh 第二步:制作镜像 通过编写Dockerfile的方式制作镜像。 需要在Dockerfile中完成如下几项工作: (1)安装jre (2)安装tomcat,并完成在tomcat中部署web应用的基本配置(为实现此功能:在制作镜像之前直接先完成tomcat的基础配置,然后直接拷贝到镜像中即可)。 (3)对外开发8080端口(具体的端口值可以根据实际Tomcat配置参数为准)。
编辑tomcat配置文件:server.xml,在<Host>节点中添加如下配置:<Context path="myweb"docBase="/webapps/MyWeb.war" reloadable="false"workDir="/tomcat_work"/>,配置片段如下所示:
注意:启动tomcat时必须通过$TOMCAT_HOME/bin/catalina.sh实现,不能使用$TOMCAT_HOME/bin/startup.sh启动,否则脚本执行后容器立刻就退出了。 编写Dockerfile
创建镜像
第三部:启动容器 webapp通过数据卷挂在到容器中进行部署,不需要拷贝到镜像中。
如日志所示,Docker容器已经启动,并且其中安装的tomcat已经成功启动。 访问:http://172.17.0.12:8080/myweb/,Everything is ok! 小技巧:启动容器时带参数-t -i和不带参数的区别:带参数-t -i时可以通过Ctrl+C停止容器运行,不带参数-t -i启动时,停止容器只能通过命令:$sudo docker stop $containerid实现。
|
|
来自: KyunraWang > 《云》