zoukankan      html  css  js  c++  java
  • 在centos操作系统中使用Dockerfile构建基于tomcat的web应用项目镜像

      

    Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令,Docker程序将这些Dockerfile指令翻译真正的Linux命令;Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile,Docker程序将读取Dockerfile,根据指令生成定制的image。Dockerfile的指令是忽略大小写的,建议使用大写,使用#作为注释,每一行只支持一条指令,每条指令可以携带多个参数。

    1.1  准备阶段

    软件版本:

    操作系统版本:CentOS Linux release 7.6.1810 (Core)(windows下安装的虚拟机)

    Docker版本: 17.12.0-ce

    JDK版本: jdk-8u141-linux-x64.tar.gz

    Tomcat版本: apache-tomcat-9.0.16.tar.gz(tomat默认端口是8080,我这里已经将端口修改为8081)

    web应用程序:TestMyWeb.war

     

    1.2  Web应用程序准备

    使用eclipse创建一个web工程,新建一个index.html极其简单的静态页面放在WebContent目录下,内容如下

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

    <title>Insert title here</title>

    </head>

    <body>

    <h2>Hello,this JSP is from tomcat in docker </h2>

    </body>

    </html>

    达成war包,名字为:TestMyWeb.war 在eclipse启动web服务后,使用如下命令检查是否OK:

    curl localhost:8081/ TestMyWeb

    1.3  创建Dockerfile

    首先新建一个Dockerfile,内容如下:

    #指定操作的镜像

    FROM centos:latest

    # 维护者信息

    MAINTAINER taotao

    #执行命令:创建目录

    RUN mkdir -p /usr/local/mysoftware

    #将jdk1.8.0_171添加到镜像centos的/usr/local/soft/目录下,并命名为jdk

    ADD jdk1.8.0_141 /usr/local/mysoftware/jdk

    #将apache-tomcat-9.0.16添加到镜像centos的/usr/local/mysoftware/目录下,并命名为tomcat

    ADD apache-tomcat-9.0.16 /usr/local/mysoftware/tomcat

    #将war包添加进webapps中

    ADD TestMyWeb.war /usr/local/mysoftware/tomcat/webapps

    #添加环境变量

    ENV JAVA_HOME /usr/local/mysoftware/jdk

    ENV CATALINA_HOME /usr/local/mysoftware/tomcat

    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/lib

    ENV CATALINA_BASE /usr/local/mysoftware/tomcat

    #暴露8081端口

    EXPOSE 8081

    #启动时运行tomcat

    CMD /usr/local/mysoftware/tomcat/bin/startup.sh && tail -F /usr/local/mysoftware/tomcat/logs/catalina.out

    说明:

    FROM : 指定基础镜像,并且必须是第一条指令

    MAINTAINER : 指定作者

    RUN : 运行指定的命令

    ADD : 复制命令,把文件复制到镜像中。

    ENV : 设置环境变量

    EXPOSE : 功能为暴漏容器运行时的监听端口给外部

    CMD : 指定容器启动时运行的命令

    1.4  通过build命令打包镜像

    [root@master testdock]# docker build -f Dockerfile -t repostory/tao_tomcat .

    Sending build context to Docker daemon  656.1MB

    Step 1/12 : FROM centos:latest

     ---> 1e1148e4cc2c

    Step 2/12 : MAINTAINER taoweizhong

     ---> Using cache

     ---> 3059d71462df

    Step 3/12 : RUN mkdir -p /usr/local/mysoftware

     ---> Using cache

     ---> cb44edf0c68e

    Step 4/12 : ADD jdk1.8.0_141 /usr/local/mysoftware/jdk

     ---> Using cache

     ---> a747ff9f8d0e

    Step 5/12 : ADD apache-tomcat-9.0.16 /usr/local/mysoftware/tomcat

     ---> Using cache

     ---> 7286990c8347

    Step 6/12 : ADD TestMyWeb.war /usr/local/mysoftware/tomcat/webapps

     ---> 0811f69088ff

    Step 7/12 : ENV JAVA_HOME /usr/local/mysoftware/jdk

     ---> Running in ffc36c078a45

    Removing intermediate container ffc36c078a45

     ---> cca8a439bf9b

    Step 8/12 : ENV CATALINA_HOME /usr/local/mysoftware/tomcat

     ---> Running in 565cb8c01ea9

    Removing intermediate container 565cb8c01ea9

     ---> e1ee83f6d265

    Step 9/12 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/lib

     ---> Running in 942a346f137c

    Removing intermediate container 942a346f137c

     ---> 09a9502375e4

    Step 10/12 : ENV CATALINA_BASE /usr/local/mysoftware/tomcat

     ---> Running in d2e964d7a812

    Removing intermediate container d2e964d7a812

     ---> b5097357dfd9

    Step 11/12 : EXPOSE 8081

     ---> Running in ad69bb87a514

    Removing intermediate container ad69bb87a514

     ---> 39e760d5a85f

    Step 12/12 : CMD /usr/local/mysoftware/tomcat/bin/startup.sh && tail -F /usr/local/mysoftware/tomcat/logs/catalina.out

     ---> Running in 304f2e7b43a6

    Removing intermediate container 304f2e7b43a6

     ---> 90e4842f2531

    Successfully built 90e4842f2531

    Successfully tagged repostory/tao_tomcat:latest

    1.5  查看生成的镜像文件

    [root@master testdock]# docker images

    REPOSITORY             TAG    IMAGE ID                   CREATED             SIZE

    repostory/tao_tomcat  latest   90e4842f2531          8 minutes ago          593MB

    1.6  运行镜像

    [root@master testdock]# docker run -d -p 8081:8081 --name taotao -v /home/taoweizhong/testdock/log/:/usr/local/mysoftware/tomcat/logs --privileged=true repostory/tao_tomcat

    2acf6e0f0c0ef5df14ea1a229073419883053fbe4e82b1a361828bdf5f8341e1

    备注:这里将tomcat的日志目录/usr/local/mysoftware/tomcat/logs挂在在宿主机的/home/taoweizhong/testdock/log/,等容器启动后,我们可以直接在宿主机的目录检查tomcat的运行日志。

    1.7  查看启动的容器

    [root@master testdock]# docker ps

     

    1.8  到宿主机目录检查tomcat的日志

    检查/home/taoweizhong/testdock/log中tomcat的日志

    [root@master log]# pwd

    /home/taoweizhong/testdock/log

    [root@master log]# ll

    -rw-r-----. 1 root root  6525 Mar 27 05:31 catalina.2019-03-27.log

    -rw-r-----. 1 root root 12795 Mar 27 05:31 catalina.out

    -rw-r-----. 1 root root     0 Mar 27 05:31 host-manager.2019-03-27.log

    -rw-r-----. 1 root root   408 Mar 27 05:31 localhost.2019-03-27.log

    -rw-r-----. 1 root root   310 Mar 27 05:43 localhost_access_log.2019-03-27.txt

    -rw-r-----. 1 root root     0 Mar 27 05:31 manager.2019-03-27.log

    1.9  访问容器内的web应用程序

    1、进入容器内访问web应用程序:

     [root@master testdock]# docker exec -it 26f23224c401 /bin/bash

     [root@26f23224c401 /]# curl localhost:8081/ TestMyWeb/

     

    2、在虚拟机内访问;

    [root@26f23224c401 /]# exit

    exit

    [root@master testdock]# curl http://localhost:8081/TestMyWeb/

     

    3、在windows宿主机访问(注意这里地址是虚拟机的IP);

    C:Users45014>curl http://192.168.135.128:8081/TestMyWeb/

      

  • 相关阅读:
    sql order by 结合case when then
    若sql语句中order by指定了多个字段,怎么排序?
    sql 按字段指定值排序
    mybatis Condition查询
    java.lang.OutOfMemoryError: GC overhead limit exceeded
    Could not open JDBC Connection for transaction
    Lock wait timeout exceeded; try restarting transaction
    [转载]Windows x64下配置ffmpeg的方法
    java第七节 IO
    mysql触发器 学习
  • 原文地址:https://www.cnblogs.com/taoweizhong/p/10611006.html
Copyright © 2011-2022 走看看