此篇博客一部分内容有赖于上一篇博客中已经陈述过的信息,如需了解,请移步:
http://danlley.iteye.com/blog/2365651
切入正题,上一篇中介绍了如何在Docker中部署Tomcat,接下来将详细说明如何在Docker的Tomcat容器中部署war包。
通常情况下,一个web应用都脱不开数据库操作,这里我们以MySQL为例来说明一个web应用Docker、一个MySQL数据库Docker构成的最基本的应用实例
首先获取MySQL的最新Docker:
docker pull daocloud.io/mysql:latest
下载后得到的image通过以下命令查看:
root@danlley-VirtualBox:/home/danlley# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
webapp1 latest a32bca93f476 About an hour ago 538.1 MB
<none> <none> 47512a4d6166 2 hours ago 538.1 MB
webapp latest abbbfb1f232d 12 hours ago 512.7 MB
daocloud.io/mysql latest 7666f75adb6b 8 weeks ago 405.6 MB
daocloud.io/ubuntu latest f49eec89601e 9 weeks ago 129.5 MB
接下来直接用镜像生成MySQL容器,并启动:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=111111 7666f75adb6b
注意:这里默认的docker是没有设定root用户的密码的,为方便后面对数据库docker进行管理,我们对root的密码进行了初始化,同时,如果你是计划将已经有的web应用迁移到docker的话,这里的端口号依然使用3306可以为你后面的工作省一些力气。
数据库docker启动成功以后,就需要对该数据库进行管理,根据自身的应用,导入数据库表及结构,给相应的数据库实例开管理账号等,这些都是和平时的做法没什么差别了。
至此,数据库的docker准备工作结束,接下来开始准备部署war包到Tomcat容器并进行应用调试。
docker的war包部署相对简单,将war包放在Dockerfile相应的同一个目录下(其中Tomcat、jdk等都放该路径),编写Dockerfile文件:
FROM daocloud.io/ubuntu:latest
MAINTAINER danlley email: danlley@126.com
# now add java and tomcat support in the container
ADD jdk-8u121-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.0.M18.tar.gz /usr/local/
# configuration of java and tomcat ENV
ENV JAVA_HOME /usr/local/jdk1.8.0_121
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.0.M18
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.0.M18
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# add war in webapps
ADD ./myteay-web.war /usr/local/apache-tomcat-9.0.0.M18/webapps
# container listener port
EXPOSE 8080
# startup wev application services by self
CMD /usr/local/apache-tomcat-9.0.0.M18/bin/catalina.sh run
接下来通过Dockerfile构建webapp镜像
1、生成镜像:
root@danlley-VirtualBox:/home/danlley/dockerfiles# docker build .
2、为生成的镜像打tag:
root@danlley-VirtualBox:/home/danlley/dockerfiles# docker tag abbbfb1f232d webapp
3、启动镜像:
docker run -d -p 8090:8080 webap
4、测试镜像部署结果,本地浏览器访问地址: http://192.168.56.102:8090
至此,一个由docker构成的简单web应用搭建成功。
参考资料: