基于Dockerfile构建tomcat容器
- 下载tomcat.tar.gz包
- 配置tomcat管理界面以及用户
- 编写Dockerfile文件
- 构建tomcat镜像
- 启动容器
- 访问页面
- Manager App页面
- HostManager
- Server Status
下载tomcat.tar.gz包
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.44/bin/apache-tomcat-9.0.44.tar.gz
# 解压
tar zxvf apache-tomcat-9.0.44.tar.gz
配置tomcat管理界面以及用户
修改manager host-manage目录的下级目录META-INFO下面的context.xml文件,开启管理页面
替换以下内容到context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
进入tomcat下的conf目录,替换以下内容到tomcat-users.xml
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<!-- 配置角色和账号,manager-gui是manager管理界面,admin-gui是admin管理界面 -->
<user username="tomcat" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
</tomcat-users>
编写Dockerfile文件
dockerfile和tomcat必须处于同级目录
FROM adoptopenjdk/openjdk11:x86_64-alpine-jre-11.0.9_11
MAINTAINER lhstack@foxmail.com # dockerfile维护人员
LABEL version=0.0.1 #定义标签
LABEL gitee="https://gitee.com/myprofile"
#定义tomcat
ENV TOMCAT_APP apache-tomcat-9.0.44
#定义tomcat工作目录
ENV WORKDIR /opt/tomcat
# tomcat启动会加载这个环境变量
ENV JAVA_OPTS "-Xmx128m -Xms128m -Xmn32m -Xss512k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$WORKDIR/error -Duser.timezone=Asia/Shanghai"
#挂载error目录
VOLUME /opt/tomcat/error
# 配置时区
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置时区
ENV TZ Asia/Shanghai
# 设置工作目录
WORKDIR $WORKDIR
# 将tomcat拷贝到工作目录
COPY $TOMCAT_APP .
# 暴露端口
EXPOSE 8080
# 启动tomcat
CMD $WORKDIR/bin/catalina.sh run
构建tomcat镜像
当前目录如下图,tomcat和Docker必须处于同级目录
执行构建命令,构建tomcat
# -t 设置镜像的tag标签
docker build -t tomcat:9.0.44-alpine .
构建完成效果如下
启动容器
docker run --name tomcat -p 8080:8080 -d tomcat:9.0.44-alpine
访问页面
Manager App页面
需要输入用户名和密码,刚刚自定义的是tomcat 123456