博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker构建Java web应用服务
阅读量:6452 次
发布时间:2019-06-23

本文共 1828 字,大约阅读时间需要 6 分钟。

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

a.一个镜像从URL拉取指定的WAR文件并保存到卷里
b.一个含有Tomcat服务器的镜像运行这些下载的WAR文件

2.构建下载WAR的镜像

FROM centosMAINTAINER ruthless 416501600@qq.comENV BUILD_ON 2018-04-12RUN yum install wget -qqy ##是否确认,默认为yesVOLUME ["/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包下载到指定的卷目录里面。

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

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

可以看到,容器通过提供的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

4.构建tomcat应用服务器

FROM centosMAINTAINER ruthless 416501600@qq.comADD ./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_80ENV PATH $JAVA_HOME/bin:$PATHVOLUME ["/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

5.运行WAR文件

启动一个tomcat实例

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

6.访问浏览器

转载地址:http://kugwo.baihongyu.com/

你可能感兴趣的文章
MyBatis+Spring结合
查看>>
shell实例-判断apache是否正常启动
查看>>
SharedPreferences存储复杂对象解决方案
查看>>
Office 365之SkyDrive Pro
查看>>
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
查看>>
无缝滚动实现原理分析【公告栏】
查看>>
Java Web 高性能开发
查看>>
redis-cli 命令总结
查看>>
CentOS 4.4双网卡绑定,实现负载均衡
查看>>
GitHub页面使用方法
查看>>
Python爬虫综述(笔记)
查看>>
Scala之柯里化和隐式转换
查看>>
wmic命令
查看>>
Merge and BottomUpSort
查看>>
reids 安装记录
查看>>
获取androdmanifest里面的meta-data
查看>>
Centos 6.3编译安装nagios
查看>>
如何实现7*24小时灵活发布?阿里技术团队这么做
查看>>
iSCSI
查看>>
java1234_Activiti_第6讲_一般程序员使用的函数
查看>>