前提条件先准备好tomcat的包和jdk包:
apache-tomcat-8.5.47.tar.gz,jdk-8u181-linux-x64.tar.gz
为防止tomcat出现中文乱码
在tomcat的bin目录catalina.sh文件新增两行
vim bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=en_US -Dsun.jnu.encoding=UTF-8"

tomcat启动慢解决方案
官方的文档里有这个问题的解释:修改$JAVA_HOME/jre/lib/security/java.security文件,替换securerandom.source=file:/dev/random为: file:/dev/urandom。对所有使用JVM的应用生效。
开始编写Dockerfile
FROM centos:7
设置为中国时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
设置编码环境为en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
#添加jdk和tomcat源码包到/usr/local/
ADD jdk-8u181-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.47.tar.gz /usr/local/
java和tomcat的环境变量设置
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH /lib/dt.jar:/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.47
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/lib:/bin
暴露端口
EXPOSE 8080
启动命令
CMD /usr/local/apache-tomcat-8.5.47/bin/catalina.sh run
制作镜像
docker build -t registry.cn-shenzhen.aliyuncs.com/lsy95/tomcat:8.5.47 -f Dockerfile .
启动tomcat镜像,并部署war包
docker run -d --name tomcat -p 8080:8080 -v xxx.war包:/usr/local/apache-tomcat-8.5.47/webapps/xxx.war tomcat:8.5.47