参考博客:docker制作tomcat镜像并部署war包

参考博客:docker快速入门

参考博客:Dockerfile常用指令

前期准备

  1. 下载JDK的包
    例如:jdk-8u151-linux-x64.tar.gz
  2. 下载Tomcat-xxx.tar.gz的包
    例如:apache-tomcat-8.5.54.tar.gz
  3. 准备部署项目*.war包
    例如:demo_war.war
  4. 将以上文件均放置同一目录下,例如:/root/mumu

编写DockerFile文件

#FROM指令:用来指定基础镜像
FROM centos
#MAINTAINER指令:设置创建镜像的作者的标识
MAINTAINER mumu
#ADD指令:拷贝文件或目录到镜像,如果是URL或压缩包会自动下载或自动解压
ADD jdk-8u151-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.54.tar.gz /usr/local/
#RUN指令:构建镜像时运行的shell命令
RUN chmod a+x /usr/local
#ENV指令:设置容器环境变量
ENV MYPATH /usr/local
#WORKDIR指令:为RUN、CMD、ENTRYPOINT、 COPY和ADD设置工作目录,意思为切换目录
WORKDIR $MYPATH
ENV JAVA_HOME $MYPATH/jdk1.8.0_151
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME $MYPATH/apache-tomcat-8.5.54
ENV CATALINA_BASH $MYPATH/apache-tomcat-8.5.54
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# 把war包放到webapps目录下
ADD demo_war.war $CATALINA_HOME/webapps
#EXPOSE指令:声明容器的服务端口
EXPOSE 8080
WORKDIR $CATALINA_HOME/bin
RUN chmod a+x $CATALINA_HOME/bin/startup.sh
#VOLUME指令:指定容器挂载点到宿主机自动生成的目录或其他容器
VOLUME ["$CATALINA_HOME/logs/","$CATALINA_HOME/webapps"]
# 注意:tail -F ,这里如果用小写的f,启动容器的时候打印完日志后会退出,用大写-F容器才会停留
CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out

制作镜像

打包镜像

备注:若由于网络环境问题下载镜像失败,可配置阿里云镜像容器加速工具(Docker配置aliyun阿里云镜像加速)

docker build -f /root/mumu/Dockerfile -t docker_tomcat_war_demo:3.0 /root/mumu

注意:镜像名需要全小写,大写报错(repository name must be lowercase

查看镜像

docker images;

运行镜像

docker run -itd -p 8080:8080 docker_tomcat_war_demo:3.0

查看容器日志

docker logs xxx(容器id)

转存/还原镜像

转存

docker save -o mytomcat_image.docker docker_tomcat_war_demo:3.0

通过scp传输至其他服务器

scp mytomcat_image.docker root@192.168.136.132:/root/

还原

docker load -i  mytomcat_image.docker

运行镜像

附录

鼠标右键单击另存链接下载

demo_war.zip