zoukankan      html  css  js  c++  java
  • docker搭建一个tomcat镜像(自定义tomcat和jdk)

    1、安装docker,参考https://www.cnblogs.com/caoweixiong/p/12186736.html,根据操作系统来

    2、docker安装完成之后,首先制作一个基础镜像(理解为操作系统的相关库依赖)

           //初始没有

          

           //下载一个(上面链接里有),这里以centos为例

         输入命令:docker pull centos,完成后如下图

          

      3、准备制作tomcat的基础内容(便于制作镜像都放同一个文件夹)

           准备内容如下图

           

           >>tomcat、jdk(jre就行了),因为我自定义了这俩内容(改过端口等等),所以我存了文件夹

           >>run.sh,名称随意,用来定义进入镜像执行什么内容,简单说就是去启动tomcat,然后再把文件执行句柄交给下列的Dockerfile文件,run.sh内容如下

    #!/bin/bash
    sh /opt/tomcat/bin/catalina.sh run

           >>Dockerfile文件,docker镜像制作文件,是一串指令集合,如下

    FROM centos:latest  #基础镜像,也就是第二步准备的内容,从docker images命令查看
    MAINTAINER cc-man   #忽略
    #上传  
    ADD tomcat9.0.50 /opt/tomcat/  #将自定义的tomcat文件夹移动到镜像中的/opt/tomcat/目录,非特定地址根据自身源文件(夹)和目标文件夹确定即可
    ADD jre /opt/jre/              #同理,移动jre
    COPY /run.sh /root/run.sh      #同理,移动进入镜像执行的指令集
    RUN  chmod 777 /root/run.sh    #执行权限
    #环境变量
    ENV JAVA_HOME=/opt/jre         #同tomcat中的环境变量设置,根据tomcat和jre(或jdk)位置确定
    ENV JRE_HOME=/opt/jre
    ENV CATALINA_HOME=/opt/tomcat
    ENV CATALINA_BASE=/opt/tomcat
    ENV PATH=:$JAVA_HOME/bin:$PATH
    ENV CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    ENTRYPOINT ["/root/run.sh"]    #简单理解为进入镜像就执行的指令,更多意义请网上搜

     4、编译(制作)镜像

           执行命令

    docker build -t my_tomcat:1.0 .  #表示编译当前目录下的内容到镜像文件中,其中镜像名为my_tomcat,tag(版本)为1.0,这俩可以随意,别忘了最后有一个.表示当前目录

       出现如图内容则制作成功了。

       

      

     5、使用某个镜像在容器中运行

      两个比较简单的命令

    docker run -d -p 8080:8090 my_tomcat:1.0   #-d表示后台运行,返回容器号,跟tomcat 的startup.sh类似;-p是端口映射,镜像中的8090映射到宿机的8080
    或者
    docker run -it -p 8080:8090 my_tomcat:1.0  #-it表示交互式运行,类似tomcat的catalina.sh,会输出日志,ctrl+c退出

    如图表示以容器运行了,通过宿机端口(8080)来访问即可。

    http:ip//8080/test/readme.txt(删掉了webapp下面的内容,新增了一个测试文本),如下图访问成功

     

         

    6、常用命令:

    docker images         #查看镜像
    docker ps             #查看目前运行的容器
    docker rmi 镜像id      #删除镜像(一般删不掉是要做后面两步骤)
    docker stop 容器id     #停掉容器
    docker rm 容器id       #删除容器
  • 相关阅读:
    在Ubuntu/Centos使用 Let's Encrypt 证书部署 HTTPS的方法
    Ubuntu14.04安装配置LAMP环境(php5.6)
    centos6 php5.4 升級到php 5.6
    为自己的2017年定个计划
    收益的一些话
    学习瓦力部署系统的项目配置和上线部署
    统计进仓和出仓数量随时间变化的剩余数量流程图
    Codeigniter 获取当前的控制器名称和方法名称
    [记]Windows 系统下设置Nodejs NPM全局路径
    [记]Cordova安装插件选择插件版本
  • 原文地址:https://www.cnblogs.com/jamsbwo/p/15022441.html
Copyright © 2011-2022 走看看