zoukankan      html  css  js  c++  java
  • docker部署Javaweb项目(jdk+tomcat+mysql)

    步骤一:在主机下载安装docker,参照Centos7上安装docker

    步骤二:下载Linux版本的JDK1.6和Tomcat6.0(其他项目若依赖其他版本的运行环境可选择另外版本下载),通过secureCRT将下载压缩包传递到Linux主机中,

    指令如下:put 源文件路径 (put d://uploads/linuxV/apache-tomcat-6.0.37.tar.gz) 该文件将默认传递到Linux主机下的“~”目录下

    引申:从Linux主机传递文件到Windows中的指令为 get 源文件的绝对路径 (get /home/sun/Dockerfile)源文件将默认传递到Windows下的“C:UsersAdministratorDocuments”目录下

    步骤三:将下载好的JDK和Tomcat传递到Linux后,复制到指定的文件夹(如:/home/sun/),并将其解压,

    常用解压指令如下:

    tar -xzvf 文件名(解压tar.gz);tar -xvf 文件名(解压tar文件)

    注意:若为bin文件,则需赋予解压权限,指令为:chmod u+x 文件名 再进行解压指令:./文件名(解压bin)

    解压后查看 /home/sun/ 如下:

    步骤四:编写Dockerfile

    在当前路径(/home/sun/)下创建文件Dockerfile(touch Dockerfile),vim Dockerfile ,编写具体内容,如下

    FROM centos
    MAINTAINER 945130012@qq.com
    
    #切换镜像目录,进入/usr目录
    WORKDIR /usr
    #在/usr/下创建jdk目录,用来存放jdk文件
    RUN mkdir jdk
    #在/usr/下创建tomcat目录,用来存放tomcat
    RUN mkdir tomcat
    
    #将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下
    ADD jdk1.6.0_45 /usr/jdk/
    #将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下
    ADD apache-tomcat-6.0.37 /usr/tomcat/
    
    #设置环境变量
    ENV JAVA_HOME=/usr/jdk
    ENV JRE_HOME=$JAVA_HOME/jre
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
    ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
    
    #公开端口
    EXPOSE 8080
    #设置启动命令
    ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]

    步骤五:编译Dockerfile,指令如下:

    docker build -t sbindocker/hello .

    注意:考虑到上次docker仓库的镜像命名格式为:docker登录名/镜像名,所以在这里直接按照格式取名,免得后面docker push 出问题

    执行结果

    [root@VM_0_4_centos sun]# docker build -t sbindocker/v1.1 .
    Sending build context to Docker daemon  345.2MB
    Step 1/13 : FROM centos
     ---> 9f38484d220f
    Step 2/13 : MAINTAINER 945130012@qq.com
     ---> Running in 229e0298fae1
    Removing intermediate container 229e0298fae1
     ---> 35f3dfe84efb
    Step 3/13 : WORKDIR /usr
    Removing intermediate container 93a2a3af2550
     ---> 4cce0e422b68
    Step 4/13 : RUN mkdir jdk
     ---> Running in 2d9af2651c7b
    Removing intermediate container 2d9af2651c7b
     ---> 8734ad8e6085
    Step 5/13 : RUN mkdir tomcat
     ---> Running in 6cc15095685e
    Removing intermediate container 6cc15095685e
     ---> 9d1afb700a70
    Step 6/13 : ADD jdk1.6.0_45 /usr/jdk/
     ---> 9f82dfde99c0
    Step 7/13 : ADD apache-tomcat-6.0.37 /usr/tomcat/
     ---> 91e803774d96
    Step 8/13 : ENV JAVA_HOME=/usr/jdk
     ---> Running in 164fba051657
    Removing intermediate container 164fba051657
     ---> e4fdbdf1aa3d
    Step 9/13 : ENV JRE_HOME=$JAVA_HOME/jre
     ---> Running in ed24e20cb48c
    Removing intermediate container ed24e20cb48c
     ---> 264978fcda87
    Step 10/13 : ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
     ---> Running in 0705f2deab04
    Removing intermediate container 0705f2deab04
     ---> 6671fe33cdb4
    Step 11/13 : ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
     ---> Running in b4c81dde0f4b
    Removing intermediate container b4c81dde0f4b
     ---> ca4640d5636e
    Step 12/13 : EXPOSE 8080
     ---> Running in ba86dfe44a41
    Removing intermediate container ba86dfe44a41
     ---> 4a18dd932885
    Step 13/13 : ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
     ---> Running in e82489de63d1
    Removing intermediate container e82489de63d1
     ---> ede60ca4f52c
    Successfully built ede60ca4f52c
    Successfully tagged sbindocker/v1.1:latest
    docker build

    步骤六:在eclipse/MyEclipse中打包war包(war包中连接数据需为Linux宿主机的IP:Port),在/home/sun/下创建目录webapps,并将war包传到到该目录下。

     步骤七:打包刚才构建好的镜像,并将/home/sun/webapps/businessManager.war 挂载到容器的/usr/tomcat/webapps/businessManager.war中。指令如下:

    docker run --name hello -p 8080:8080 -v /home/sun/webapps/businessManager.war:/usr/tomcat/webapps/businessManager -d sbindocker/hello

    步骤八:输入docker ps指令、netstat   -nultp、docker logs --tail 100 -f hello 指令查看容器状态,端口占用情况和应用运行日志

    至此,即完成web项目在docker容器下的部署,在docker中创建好MySQL容器后,即可在浏览器输入Linux主机的IP:8080/businessManager 即可访问项目

    注意:除了java文件,任何在docker容器中可以查看到的真实存在的文件内容都可以直接在容器中进行修改(即使是lib下的jar包都行),改完后需要重启容器(docker restart 容器ID/名称)(适用于小范围改动),若整个项目进行了较大的改动,只需将打包好的war包重新拷贝到Linux主机的/home/sun/webapps/下即可,无需重启容器。

  • 相关阅读:
    Storm中的定时任务
    Storm的acker确认机制
    ORACLE数据库表解锁record is locked by another user
    Java生成某段时间内的随机时间
    Linux中断概述
    Linux内核同步:RCU
    Linux内核同步:自旋锁
    Linux软中断、tasklet和工作队列
    Linux信号机制
    缺页异常处理
  • 原文地址:https://www.cnblogs.com/Crysta1/p/10943704.html
Copyright © 2011-2022 走看看