实战Dockerfile构建Tomcat镜像

前言

再上一篇博客总结了CMD与ENTRYPOINT区别感兴趣可以进行访问。CMD与ENTRYPOINT的区别

准备镜像文件
  1. 首先我们需要准备两个文件分别是tomcat和jdk。tomcat和jdk可以在官网进行下载。
    Tomcat官网
    JDK下载官网
  2. 将下载好的文件或者是压缩包上传到虚拟机中。我这儿上传的是我的XShell中。
    如何将文件上传到xShell,在Xshell新建会话中选择SFTP协议,这个协议主要是用来传输文件的。
    Docker从入门到精通——实战Dockerfile构建Tomcat镜像_其他
    进入虚拟机之后,直接将下载好的文件拖到屏幕中就完成文件上传了。
    如图:
    Docker从入门到精通——实战Dockerfile构建Tomcat镜像_docker_02
编写Dockerfile
  1. 在目录下创建一个名为Dockerfile的文件,命名为Docekrfile的好处是,是官方的命名不用在构建的时候添加其他命令。
    关于Dockerfile的命令可以访问Docker的文档进行查看和学习Docker docs
  2. 编辑Dockerfile 难点是配置环境变量
FROM centos:centos7
MAINTAINER wangwei<2532076303qq.com>

COPY readme.txt /usr/local/readme.txt
ADD jdk-8u231-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.62.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local/

WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_231
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.62
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.62
ENV PATH $PATH:$JAVA_HOME/bin:$CTALINA_HOME/lib/:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.62/bin/startup.sh && tail -F /url/local/usr/local/apache-tomcat-9.0.62/bin/logs/catalina.out

  1. 构建镜像
# 因为dockerfile命名使用默认命名 因此不用使用-f 指定文件
docker build -t diytomcat .

  1. run镜像,同时进行数据卷挂载
docker run -d -p 9090:8080 --name wagnweitomcat -v /home/wangwei/test:/usr/local/apache-tomcat-9.0.62/webapps/test -v /home/wangwei/tomcatlogs:/usr/local/apache-tomcat-9.0.62/logs diytomcat


查看时候成功运行
Docker从入门到精通——实战Dockerfile构建Tomcat镜像_docker_03
5. 进行测试

curl localhost:9090

Docker从入门到精通——实战Dockerfile构建Tomcat镜像_java_04
最后在进行外网访问ip+端口号
Docker从入门到精通——实战Dockerfile构建Tomcat镜像_tomcat_05