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       #删除容器

 

posted @ 2021-07-17 02:09  jamsbwo  阅读(1510)  评论(0编辑  收藏  举报
©2014 to