zoukankan      html  css  js  c++  java
  • 如何使用Dockerfile构建Tomcat镜像并部署war

    我们都知道Docker构建一个镜像有两种方式:

    使用`docker commit`命令
    使用`Dockerfile`文件和`docker build`命令
    

    那么这两种方式有何区别呢?

    相同点:底层实现上一样,最终都是通过`docker commit`生成镜像;
    不同点:通过`Dockerfile`生成镜像,能够实现镜像文档化,使得镜像可读且易维护;
    通过`docker build`生成镜像则相反,不能实现镜像文档化。
    

    所以这篇文章采用Dockerfile来构建 :D

    0x02准备工作

    创建目录

    $ mkdir tomcat && cd tomcat # 创建一个目录来存放所需文件
    

    $ touch Dockerfile && vi Dockerfile # 编写Dockefile

     

    Dockerfile (Tomcat其他版本

    
    
    FROM tomcat:7-jre7 # tomcat7 + jre 7
    MAINTAINER "errorlife <steffan.fan@foxmail.com>" # 维护者
    CMD ["catalina.sh", "run"] #启动tomcat shell执行程序
    
    
    
    
    

    0x03 构建镜像

    构建镜像

    $ sudo docker build -t errorlife/tomcat . 
    # "-t",--tag,为当前镜像命名:errorlife/tomcat
    # ".", 指代当前目录
    

    运行镜像

    $ sudo docker run -d -p 8080:8080 errorlife/tomcat
    # -d,--detach=false         指定容器运行于前台还是后台(-d即后台) 
    # "-p",--port,指定宿主机的8080端口绑定到镜像暴露的8080端口
    

    运行结果

    1. 你可以使用curl命令确定是否正确部署成功

      $ curl http://docker.steffan.cn:8080/
      
    2. 使用浏览器访问http://ip:8080/

      tomcat

    当你见到熟悉的汤姆猫的时候,就证明你构建成功了。

    部署war包

    1. war包上传到与Dockerfile文件同一目录(即tomcat)
      我使用的是WinSCP,个人觉得好用到不行=。=
    2. 重新编写Dockerfile:

      $ vi Dockerfile
      
    3. Dockerfile:

      
      
      FROM tomcat:7-jre7
      MAINTAINER "errorlife <steffan.fan@foxmail.com>"
      ADD dockertest.war /usr/local/tomcat/webapps/ #将war包添加进webapps中
      CMD ["catalina.sh", "run"] #启动tomcat shell执行程序
      
      
      

        

      
      
    4. 运行结果
      hello,errorlife!

    0x04 其他配置文件

    应用场景

    由于一些项目需要修改tomcat的context.xml,setting.xml,tomcat-user.xml等,还有一些tomcat的lib包,甚至是添加一些独有的授权文件,那么也应该在dockerfileadd进去,而不是直接放到Linux的文件管理系统中。

    Show一下我的Dockerfile

    FROM tomcat:7-jre7
    MAINTAINER "errorlife <steffan.fan@foxmail.com>"
    
    ADD settings.xml /usr/local/tomcat/conf/
    ADD tomcat-users.xml /usr/local/tomcat/conf/
    ADD config/license.xml 
    
    ADD classes12.jar /usr/local/tomcat/lib
    ADD ojdbc6.jar /usr/local/tomcat/lib
    ADD oracle-jdbc-10.2.jar /usr/local/tomcat/lib
    ADD context.xml /usr/local/tomcat/conf/
    ADD xxx.war /usr/local/tomcat/webapps/
    CMD ["catalina.sh", "run"]
    

      

  • 相关阅读:
    C语言版本:单链表的实现(优化版本)
    C语言版本:单链表的实现
    C语言版本:顺序表的实现
    C++:多态浅析
    C++:同名隐藏和赋值兼容规则
    C++:钻石继承与虚继承
    C++:派生类的构造函数和析构函数的调用顺序
    Docker安装和使用
    Node10.15.0的安装
    碎碎叨叨
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/10040220.html
Copyright © 2011-2022 走看看