Docker部署Java Web系统

1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app &&cd app

2.将apache-tomcat-7.0.29.tar.gz及jdk-7u25-linux-x64.tar.gz拷贝 到app目录下

3.解压两个tar.gz文件

tar -zxvf apache-tomcat-7.0.29.tar.gz tar -zxvf jdk-7u25-linux-x64.tar.gz

4.对解压后的文件进行重命名

mv apache-tomcat-7.0.29 tomcat mv jdk-7u25-linux-x64 jdk

5.在app目录下,制作Dockerfile文件来创建镜像

touch Dockerfile

6.Dockerfile文档内容及注解

-------------------------------------------------------------------------Dockerfile内容---------------------------------------------------------------

#使用ubuntu:14.04作为基础镜像
   FROM ubuntu:14.04
#指定镜像创建者信息
  MAINTAINER test xxxx@xxx.com
#创建日期
  ENV REFRESHED_AT 2017-2-15
#切换镜像目录,进入/usr目录
  WORKDIR /usr
#在/usr/下创建jdk目录,用来存放jdk文件
  RUN mkdir jdk
#在/usr/下创建tomcat目录,用来存放tomcat
  RUN mkdir tomcat
#切换镜像的目录至/usr/jdk
  WORKDIR /usr/jdk/

#将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下
   ADD jdk /usr/jdk
#切换镜像的目录至/usr/tomcat
   WORKDIR /usr/tomcat
#将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下
   ADD tomcat /usr/tomcat
#设置环境变量
   ENV JAVA_HOME=/usr/jdk
   ENV JAVA_BIN=/usr/jdk/bin
   ENV PATH=$PATH:$JAVA_HOME/bin
   ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#切换工作目录到ROOT下
   WORKDIR /usr/tomcat/webapps/ROOT
#删除tomcat默认的项目文件
   RUN rm -rf *
#将自己的xxx.war系统添加到docker镜像中tomcat下的ROOT目录下
  ADD webapp /usr/tomcat/webapps/xxx.war
#公布tomcat的8080端口
  EXPOSE 8080
#启动tomcat
  ENTRYPOINT ["../../bin/catalina.sh","run"]

--------------------------------------------------------------------------------------------------------------------------------------------------------

7.通过Dockerfile来创建镜像

命令:   docker  build  -t  镜像名称:标签 Dockerfile位置

docker  build  -t  tms:1.0  .  (.代表当前目录)

8.至此就把Java Web系统制作成一个image,通过docker images来验证

9.通过刚构建镜像来启动一个Docker 容器

命令: docker run -d -p 宿主机映射端口:容器暴露端口 --name 容器名  镜像名称/镜像ID

-d 参数: 后端启动模式

-p 参数: 宿主机端口与容器端口的映射

--name 参数: 给容器起个别名

docker run -d -p 8081:8080 --name 容器名称  镜像name:镜像tag

10.通过docker ps -a来验证

Docker学习笔记三:Docker部署Java web系统的更多相关文章

  1. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  2. Docker学习笔记_10 docker应用 - 部署TOMCAT服务

    选择基镜像 基镜像使用dokcer hub官方提供的tomcat8 alpine当前最新版本,https://hub.docker.com/_/tomcat/ docker pull tomcat:8 ...

  3. Docker学习笔记三

    4.Docker数据管理 4.1.数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似与Linux的mount行为. 特性: 数据卷可以在容器之间共事和重用,容器间传递 ...

  4. Docker学习笔记2: Docker 概述

    一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and  Run Any App ,AnyWhere" , ...

  5. Docker学习笔记之Docker的数据管理和存储

    0x00 概述 数据是应用程序重要的产出,所以很好的管理和存储数据,是对应用程序劳动结果的尊重.特别是在大数据时代,所有的数据都是重要的资产,保护好数据是每个开发者必须掌握的技能.我们知道,在 Doc ...

  6. Docker学习笔记之Docker 的简历

    0x00 概述 在了解虚拟化和容器技术后,我们就更容易理解 Docker 的相关知识了.在这一小节中,我将介绍关于 Docker 的出现和发展,Docker 背后的技术.同时,我们将阐述 Docker ...

  7. DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战

    前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...

  8. DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结

    前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...

  9. DOCKER 学习笔记8 Docker Swarm 集群搭建

    前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...

随机推荐

  1. cogs696 longest prefix

    cogs696 longest prefix 原题链接 IOI1996原题? 其实这题我不会. map+string+手动氧气大法好 //就是这么皮(滑稽 Code // It is made by ...

  2. LDPC译码算法代码概述

    程序说明 V0.0 2015/1/24 LDPC译码算法代码概述   概述   本文介绍了包括LDPC_Simulation.m, ldpcdecoderbp1.m,ldpcdecoderminsum ...

  3. 关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)

    因为msdn中说返回受影响的行数: Executes a Transact-SQL statement against the connection and returns the number of ...

  4. Spring单元测试集成H2数据库

    项目源代码在:Spring-H2测试 H2简介 H2数据库是一种由Java编写的,极小,速度极快,可嵌入式的数据库.非常适合用在单元测试等数据不需要保存的场景下面. 以下时其官网的介绍: {% blo ...

  5. 使用SKlearn(Sci-Kit Learn)进行SVR模型学习

    今天了解到sklearn这个库,简直太酷炫,一行代码完成机器学习. 贴一个自动生成数据,SVR进行数据拟合的代码,附带网格搜索(GridSearch, 帮助你选择合适的参数)以及模型保存.读取以及结果 ...

  6. JDBC及DBUtils

    1.JDBC2.DBUtils ###01JDBC概念和数据库驱动程序 * A: JDBC概念和数据库驱动程序 * a: JDBC概述 * JDBC(Java Data Base Connectivi ...

  7. Python常用模块之hashlib

    Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据 import hashlib hash = hashlib.m ...

  8. python3【基础】-集合

    集合( set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合元素(set elements):组成集合的成员(不可重复) class set(object) | set() - ...

  9. 20181120-10 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 7

    此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2415] 版本控制地址    [https://git.coding.n ...

  10. C语言调查问卷

    1.你对自己的未来有什么规划?做了哪些准备?毕业后应该不会从事编程类工作,目前有在学习感兴趣的东西.2.你认为什么是学习?学习有什么用?现在学习动力如何?为什么?学习就是把不懂变成懂,可以充实自己.没 ...