• 如何使用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++基础--if/else和switch/case的区别
    条件概率,联合概率,边缘概率及独立事件,古典概型
    Maven中的Archetype概念及作用用途
    Unable to execute 'doFinal' with cipher instance
    查看是否存在tomcat进程和关闭方法
    python中的‘’的作用
    sklearn中predict_proba()的用法例子(转)
    pandas.DataFrame.sample随机抽样
    最全的MonkeyRunner自动化测试从入门到精通(1)
    阿里创新自动化测试工具平台--Doom
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/10040220.html
Copyright © 2020-2023  润新知