1.构建一个Java应用服务,包含两个步骤:
a.一个镜像从URL拉取指定的WAR文件并保存到卷里
b.一个含有Tomcat服务器的镜像运行这些下载的WAR文件

2.构建下载WAR的镜像

FROM centos
MAINTAINER ruthless @qq.com
ENV BUILD_ON --
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包下载到指定的卷目录里面。

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 centos
MAINTAINER ruthless @qq.com ADD ./jdk-7u80-linux-x64.tar.gz /usr/local/
ADD ./apache-tomcat-7.0..tar.gz /usr/local/ #set environment variable
ENV JAVA_HOME /usr/local/jdk1..0_80
ENV PATH $JAVA_HOME/bin:$PATH VOLUME ["/var/lib/tomcat7/webapps/"]
EXPOSE #指定容器启动后执行linux命令
#、把war文件复制到tomcat webapps目录下 、启动tomcat 、打印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 : sample/tomcat
$ docker logs sample_app

6.访问浏览器
http://192.168.1.160:8080/sample

Docker构建Java web应用服务的更多相关文章

  1. docker化java web应用

    一.简介 Docker是一个使用Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上.Docker的发展速度和火爆程度着实令人惊叹,一 ...

  2. Docker学习笔记三:Docker部署Java web系统

    Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app && ...

  3. Gradle构建Java Web应用(转)

    转自:http://www.blogjava.net/jiangshachina/archive/2014/02/03/409285.html 本文是发布在java.net上的一篇摘自于<Gra ...

  4. Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)

    Gradle的官方tutorial介绍了构建Java Web应用的基本方法.不过在使用Servlet做上传的时候会碰到问题.这里分享下如何通过Servlet上传文件,以及如何使用Gradle来构建相应 ...

  5. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

  6. Docker构建Python Web环境

    出于寻找Docker对Python相关项目部署的学习,找到腾讯课堂NEXT公开课中[Docker构建Python Web环境]的课程,本文对其进行内容梳理及知识点汇总. 该课程总计6小时左右,是个适合 ...

  7. 使用Docker运行Java Web应用

    前言 Tomcat是目前比较流行的Web应用服务器,深受Java爱好者的喜爱.通常J2EE应用的产出物是一个war包,这篇文章将为你介绍如何使用Docker运行Tomcat+war包的Java Web ...

  8. 使用Docker搭建Java Web运行环境

    这周末体验了一下挺火的Docker技术,记录学习笔记. >Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发 ...

  9. Docker搭建Java Web运行环境

    1. 前提条件 安装了Docker的64位Linux 操作系统 Linux操作系统镜像 Linux版本的JDK压缩包 Linux版本的Tomcat压缩包 2. 启动容器 容器是在镜像的基础上来运行的, ...

随机推荐

  1. centos7 smplayer 安装 安装视频播放器

    # yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noar ...

  2. 二 分析easyswoole源码(启动服务)

    前文连接,阅读的时候最好参照EasySwoole2.1.2的源码 $inst->run();//启动服务 这里实际调用的是Core的start方法ServerManager::getInstan ...

  3. exchange 2010 数据库管理

    1. 查看数据库中空白空间 Get-MailboxDatabase databasename -Status | FL AvailableNewMailboxSpace 2.卸载数据库 Dismoun ...

  4. ScheduledExecutorService--目前最理想的定时任务实现方式

    ScheduledExecutorService 理想的定时任务实现方式 : 通过线程池的方式来执行任务的 可以灵活的设定第一次执行任务延迟时间 提供了良好的约定,以便设定定时执行的间隔时间代码实现: ...

  5. HTML语言

    复习: 1.Web项目的部署结构  静态Web技术(客户端技术):提供的内容任何人在任何时间访问都是一样的 HTML/CSS/JS/Flash.... 动态Web技术(服务器端技术):提供的内容不同人 ...

  6. ABP框架系列之十:(Application-Services-应用服务)

    Application Services are used to expose domain logic to the presentation layer. An Application Servi ...

  7. ABP框架系列之四十:(Notification-System-通知系统)

    Introduction Notifications are used to inform users on specific events in the system. ASP.NET Boiler ...

  8. mysql8.0 linux 安装

    1.下载 mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz 2.解压 tar -xvf mysql-8.0.15-linux-glibc2.12-x86_64.ta ...

  9. 把router-link标签渲染成指定的标签

    <router-link>标签默认渲染成 <a>标签,可以通过tag属性把router-link渲染成指定的标签,如: <router-link to="/&q ...

  10. centos7升级系统内核

      1)升级 方法一: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.or ...