一、构建基础镜像-Tomcat8.5
1、构建jdk环境镜像
#FORM 的是刚刚我们做的基础centos镜像
FROM centos:latest
LABEL zsg me@qq.com
# 配置jdk
ADD jdk-7u191-linux-x64.tar.gz /usr/local/
RUN ln -sv /usr/local/jdk1.7.0_191 /usr/local/java
#添加配置文件
ADD profile /etc/profile
#添加java的环境变量(不加这个root登录没有java环境)
ENV JAVA_HOME /usr/local/java
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin
#统一时间,做软链接。ln [参数][源文件或目录][目标文件或目录]
RUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
进行测试
# 构建并测试
docker build -t centos8-jdk7:jdk1.7.0_191 .
# 运行并测试
docker run -it 镜像id
# 进入容器中查看
java -version
建议构建脚本的命令写成shell脚本方便后期维护
#!/bin/bash
docker build -t centos8-jdk7:jdk1.7.0_191 .
2、构建tomcat8.5镜像
FROM centos8-jdk7:jdk1.7.0_191
LABEL maintainer="zsg <1690014753@qq.com>"
ADD tomcat-8.5.65.tar.gz /usr/local
RUN ln -s /usr/local/tomcat-8.5.65/ /usr/local/tomcat
WORKDIR /usr/local/tomcat/
构建脚本
cat build-tomcat8.sh
#!/bin/bash
docker build -t tomcat8.5:v8.5.65 .
# ----------------------------------------
# 构建并测试
sh build-tomcat8.sh
docker run -it --name tomcat8-1 镜像id /bin/bash
# 进入容器中启动tomcat进行测试
3、制作Tomcat8业务镜像 - 模板
构建Dockerfile
vi app-tomcat8.5
# 内容如下
FROM tomcat8.5:v8.5.65
LABEL maintainer="zsg <1690014753@qq.com>"
# 修改server.xml配置文件
ADD server.xml /usr/local/tomcat/conf
# 添加war包到tomcat部署目录(如果位置有更改,自行调整)
ADD firstDemo.war /usr/local/tomcat/webapps
# 设置tomcat用户
RUN useradd -s /sbin/nologin tomcat && chown -R tomcat:tomcat /usr/local/tomcat/
# 挂在目录
VOLUME ["/usr/local/tomcat/webapps","/usr/local/tomcat/logs"]
# 对外端口
EXPOSE 8080
# 设置用户
USER tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
测试构建测试脚本并测试
vi build-test.sh
#!/bin/bash
docker build -f ./app-tomcat8.5 -t test:v1 .
# 构建,并启动测试
sh build-test.sh
docker run -d -p 8081:8080 --name tomcat8.5 镜像id