docker 创建java web应用_Docker构建Java web应用服务

1、构建一个Java应用服务,包含两个步骤:

a.一个镜像从URL拉取指定的WAR文件并保存到卷里

b.一个含有Tomcat服务器的镜像运行这些下载的WAR文件

2、构建下载WAR的镜像

FROM centos

MAINTAINER ruthless 416501600@qq.com

ENV BUILD_ON 2018-04-12

RUN yum install wget -qqy ##是否确认,默认为yes

VOLUME ["/var/lib/tomcat7/webapps"] ##war存放目录

WORKDIR /var/lib/tomcat7/webapps/

ENTRYPOINT ["wget"]

CMD ["-?"]

$ docker build -t sample/war . ##构建war镜像

通过 WORKDIR 指定工作目录为/var/lib/tomcat7/webapps,因为通过指定了VOLUME卷,因此wget命令会把war包下载到指定的卷目录里面。

261554a174e295679ab26b60e6fd308d.png

3、指定url下载war包,运行容器

$ docker run -it --name sample_war sample/war https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war

890bd4707e649993cf2ed34dadc1bfa2.png

可以看到,容器通过提供的URL下载了war包,最终保存到/var/lib/tomcat7/webapps目录中。可以在/var/lib/docker目录中找到这个war文件

$ docker inspect -f "{{range.Mounts}}{{.}}{{end}}" sample_war ##用于查看卷的存储位置。

$ ll /var/lib/docker/volumes/787dd4200ae0c621b78640e1ad1a096628c39d21537e5151ca4da259e6ab9873/_data

775cb3627dc9205b13511b830bec20be.png

4、构建tomcat应用服务器

FROM centos

MAINTAINER ruthless 416501600@qq.com

ADD ./jdk-7u80-linux-x64.tar.gz /usr/local/

ADD ./apache-tomcat-7.0.73.tar.gz /usr/local/

#set environment variable

ENV JAVA_HOME /usr/local/jdk1.7.0_80

ENV PATH $JAVA_HOME/bin:$PATH

VOLUME ["/var/lib/tomcat7/webapps/"]

EXPOSE 8080

#指定容器启动后执行linux命令

#1、把war文件复制到tomcat webapps目录下 2、启动tomcat 3、打印tomcat日志

#2、执行多个命令记得写成一行,别换行否则会报错

ENTRYPOINT cp /var/lib/tomcat7/webapps/* /usr/local/apache-tomcat-7.0.73/webapps/ && /usr/local/apache-tomcat-7.0.73/bin/startup.sh && tail -f /usr/local/apache-tomcat-7.0.73/logs/catalina.out

jdk-7u80-linux-x64.tar.gz、apache-tomcat-7.0.73.tar.gz跟Dockerfile放在同一目录。

使用 ADD 命令增加jdk,默认会解压,使用ENV命令增加java的环境变量。

VOLUME增加/var/lib/tomcat/webapps数据卷,EXPOSE命令对外开放8080端口,ENTRYPOINT指定容器启动后执行的命令,运行tomcat服务器。

$ docker build -t sample/tomcat . ##构建tomcat镜像

$ docker images

2d978e1e6871c1e84c6534a1aad03dfc.png

5、运行WAR文件

启动一个tomcat实例

$ docker run -d --name sample_app --volumes-from sample_war -p 8080:8080 sample/tomcat

$ docker logs sample_app

e5c007722d695601688016ef14867f66.png

https://www.cnblogs.com/linjiqin/category/1108912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值