一.安装环境和软件包准备

centos7.4    docker v20.10.24

jdk-8u291-linux-x64.tar.gz 下载 https://cloud.189.cn/t/BnIVVfneyQbe (访问码:nf1e)

tomcat 下载 https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.90/bin/apache-tomcat-9.0.90.tar.gz

二.tomcat和jdk镜像dockerfile编写并构建

1.将需要ADD到镜像的文件放到/root/Dockerfile/tomcat目录

mkdir -p /root/Dockerfile/tomcat
cd /root/Dockerfile/tomcat
cp jdk-8u291-linux-x64.tar.gz  .
cp apache-tomcat-9.0.90.tar.gz .

2.dockerfile文件编写

cat >> /root/Dockerfile/tomcat/dockerfile<<'EOF'
FROM centos:7
MAINTAINER alibaby007
ENV JAVA_VERSION=jdk-8u291
ENV VERSION=9.0.90

ADD jdk-8u291-linux-x64.tar.gz /usr/local

ENV JAVA_HOME /usr/local/jdk1.8.0_291
ENV PATH $PATH:$JAVA_HOME/bin
ADD apache-tomcat-9.0.90.tar.gz /usr/local

WORKDIR /usr/local/apache-tomcat-9.0.90
EXPOSE 8080
ENTRYPOINT ["./bin/catalina.sh", "run"]
EOF

3.构建镜像

cd /root/Dockerfile/tomcat
docker build -t tomcat:v9.0.90 .

3.创建容器

#创建站点本地存储目录
mkdir -p /app/webapps
#运行tomcat容器
docker run -itd \
--name tomcat \
-p 8080:8080 \
--mount type=bind,src=/app/webapps/,dst=/usr/local/apache-tomcat-9.0.90/webapps \
tomcat:v9.0.90

4.验证 http://ip:8080

说明:宿主机对应的/app/webapps/目录,将项目的war包放在此目录下,运行tomcat时就会自动解压缩并部署为应用。

现在没有项目,在此目录下先创建ROOT目录。

mkdir -p /app/webapps/ROOT
cd /app/webapps/ROOT
echo alibaby007 > index.html

5.验证 http://ip:8080

三.构建jar包

1.将需要COPY到镜像的文件放到/root/Dockerfile/jar目录

mkdir -p /root/Dockerfile/jar
cd /root/Dockerfile/tomcat
cp my-app.jar  .

2.dockerfile文件编写

cat >> /root/Dockerfile/jar/dockerfile<<'EOF'
FROM openjdk:8
COPY my-app.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EOF

3.构建镜像

cd /root/Dockerfile/jar
docker build -t app.jar:v1.0 .

4.查看镜像

docker image ls