docker使用tomcat发布war
1、拉取tomcat到本地查看仓库tomcatdocker search tomcatNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDtomcatApache Tomcat is an open source implementati…3174
一、直接使用仓库镜像
1、查看仓库tomcat
docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementati… 3174 [OK]
tomee Apache TomEE is an all-Apache Java EE certif… 93 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 58 [OK]
2、拉取最新版本
docker pull tomcat
3、查看本地镜像
[root@dex ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest b0e0b0a92cf9 3 weeks ago 680MB
4、将镜像制作为容器
docker run -p 8085:8080 --name tomcatContainer -d tomcat
使用wget 测试链接,发现是404?
[root@dex opt]# wget localhost:8085
--2021-11-14 13:00:03-- http://localhost:8085/
Resolving localhost (localhost)... 127.0.0.1, ::1
Connecting to localhost (localhost)|127.0.0.1|:8085... connected.
HTTP request sent, awaiting response... 404
2021-11-14 13:00:03 ERROR 404: (no description).
5、进入容器查看问题
[root@dex opt]# docker exec -u root -it tomcatContainer /bin/bash
root@31f2:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
cd到webapps 发现是个空文件夹?
root@31f2:/usr/local/tomcat/webapps# ls
root@31f2:/usr/local/tomcat/webapps#
但发现有一个webapps.dist,于是cd到该目录下发现了需要的ROOT, examples等文件
ROOT docs examples host-manager manager
于是将webapps.dist修改为webapps
mv webapps.dist webapps
再次运行wget 测试发现可以了
root@31f2:/usr/local/tomcat/webapps/examples# wget localhost:8085
--2021-11-14 09:38:33-- http://localhost:8085/
Resolving localhost (localhost)... 127.0.0.1, ::1
Connecting to localhost (localhost)|127.0.0.1|:8085... failed: Connection refused.
Connecting to localhost (localhost)|::1|:8085... failed: Network is unreachable.
6、将war好拷贝到tomcat的webapps目录下
[root@dex opt]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31f2e214cdbb tomcat "catalina.sh run" 14 minutes ago Up 14 minutes 0.0.0.0:8085->8080/tcp wechatTomcat
先使用XFtp将war传入到对应的/opt/warPackage目录
[root@dex ~]# ll /opt/warPackage/
total 1202712
-rw-r--r-- 1 root root 1231571513 Nov 14 17:55 fluviolacu-0.0.1-SNAPSHOT.war
开始拷贝war包进tomcat容器的webapps目录下
命令格式:docker cp xxx.war包路径 容器ID:/要复制过去的目录路径
docker cp /warPackage/fluviolacu-0.0.1-SNAPSHOT.war 31f2e214cdbb:/usr/local/tomcat/webapps
7、重启容器
重启容器:docker restart +容器ID
docker restart 31f2e214cdbb
8、使用挂载文件完成war发布
上面的拷贝war方式比较麻烦,容器关闭war也容易丢失,这里使用挂载的方式就简单多了
进行挂载目录,运行tomcat容器
[root@dex ~]# docker run -v /opt/warPackage/:/usr/local/tomcat/webapps/ -p 8085:8080 --name lakeRiverTomcat -d tomcat
二、使用Dockerfile 制作镜像
上面是使用官方的tomcat 镜像直接制作容器,这里我们自己配置dockerfile 来安照自己的需求制作镜像,
先创建一个tomcat_image_create_dir 目录
mkdir tomcat_image_create_dir
然后把对应的tomcat 和jdk 使用wget拉下来
$ wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz
其他版本自己可以去tomcat官网查看按需修改就好
jdk wget 就直接去oracle官网找到对应版本复制链接,然后wget 拉取如
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
好了目录下有资源了,再使用vi 创建一个Dockerfile文件配置images
[root@dex tomcat_image_create_dir]# ll
total 209996
-rw-r--r-- 1 root root 11442169 Dec 3 2020 apache-tomcat-9.0.41.tar.gz
-rw-r--r-- 1 root root 719 Nov 15 19:22 Dockerfile
-rw-r--r-- 1 root root 194042837 Nov 15 17:34 jdk-8u202-linux-x64.tar.gz
Dockerfile文件内容也很简单
[root@dex tomcat_image_create_dir]# cat Dockerfile
FROM centos:7.8.2003
#拷贝tomcat jdk 到镜像并解压
ADD apache-tomcat-9.0.41.tar.gz /usr/local/tomcat
ADD jdk-8u202-linux-x64.tar.gz /usr/local/jdk
#定义交互时登录路径
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk 和tomcat环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_202
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-9.0.41
ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-9.0.41
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#设置暴露的端口
EXPOSE 8080
#运行tomcat
CMD /usr/local/tomcat/apache-tomcat-9.0.41/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-9.0.41/logs/catalina.out
制作镜像,直接在该目录下面
[root@dex tomcat_image_create_dir]# docker build 镜像名 .
一回车等待执行完成,镜像就生成了
docker images
查看所有镜像,其他容器运行和(一、直接使用仓库镜像)完全相同
更多推荐
所有评论(0)