Docker初识(三)——Java应用服务

获取Tomcat 服务器上的WAR文件,并运行一个Java应用程序。构建一个Docker管道。

WAR文件的获取程序

  1. 构建一个镜像,这个镜像会下载WAR文件并将其挂载在卷里。

    mkdir fetcher
    cd fetcher
    touch Dockerfile
    

    编写Dockerfile文件内容

    FROM ubuntu:14.04
    MAINTAINER xuzq11 
    ENV REFRESHED_AT 2019-10-15
    
    RUN apt-get -yqq update
    RUN apt-get -yqq install wget
    
    VOLUME [ "/var/lib/tomcat7/webapps/" ]
    WORKDIR /var/lib/tomcat7/webapps/
    
    ENTRYPOINT [ "wget"]
    CMD [ "-?" ]
    

    创建镜像

    dockerr build -t haliaddel/fetcher .
    

    获取WAR文件

    docker run -t -i --name sample haliaddel/fetcher https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample.war
    

    sample.war文件最终会保存到/var/lib/tomcat7/webapps/目录中。

  2. 创建Tomcat应用服务器

    mkdir tomcat7
    cd tomcat7
    touch Dockerfile
    

    编写Dockerfile

    FROM ubuntu:14.04
    MAINTAINER xuzq11 
    ENV REFRESHED_AT 2019-10-15
    
    RUN apt-get -yqq update
    RUN apt-get -yqq install tomcat7 default-jdk
    
    ENV CATALINA_HOME /usr/share/tomcat7
    ENV CATALINA_BASE /var/lib/tomcat7
    ENV CATALINA_PID /var/run/tomcat7.pid
    ENV CATALINA_SH /usr/share/tomcat7/bin/catalina.sh
    ENV CATALINA_TMPDIR /tmp/tomcat7-tomcat7-tmp
    
    RUN mkdir -p $CATALINA_TMPDIR
    
    VOLUME [ "/var/lib/tomcat7/webapps/" ]
    
    EXPOSE 8080
    
    ENTRYPOINT [ "/usr/share/tomcat7/bin/catalina.sh", "run" ]
    

    构建Tomcat7镜像

    docker build -t haliaddel/tomcat7 .
    
  3. 运行WAR文件
    创建一个新的Tomcat实例。

    docker run --name sample_app --volumes-from sample -d -P haliaddel/tomcat7
    

    –volumes-from标志表明会复用sample容器里的卷。这意味着存储在/var/lib/tomcat7/webapps/卷里的WAR文件会从sample容器挂载到sample_app容器,最终被Tomcat加载并执行。

    查看Tomcat应用的端口

    docker port sample_app 8080
    

基于Tomcat应用服务器的构建服务

  1. 在Docker宿主机安装Ruby
    apt-get -qqy install ruby make ruby-dev
    

你可能感兴趣的:(Docker)