docker搭建一个tomcat镜像(自定义tomcat和jdk)
2021/7/17 6:05:28
本文主要是介绍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 #删除容器
这篇关于docker搭建一个tomcat镜像(自定义tomcat和jdk)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器