前提條件先準備好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