DockerFile解析——自定义镜像Tomcat9

1、在根目录下创建 /mydockerfile/tomcat9 文件夹

[root@localhost]#mkdir -p /mydockerfile/tomcat9
[root@localhost tomcat9]#

2、在上述目录下touch c.txt

[root@localhost tomcat9]# touch c.txt
[root@localhost tomcat9]# 

3、将jdk和tomcat安装的压缩包拷贝进上一步目录

[root@localhost tomcat9]#  ll

在这里插入图片描述

4、在/mydockerfile/tomcat9目录下新建Dockerfile文件

[root@localhost tomcat9]#  vim Dockerfile
FROM centos
MAINTAINER zzyy<zzyybs@126.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
COPY c.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.8.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE  8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh" ]# 
CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out
[root@localhost tomcat9]#

5、构建tomcat9镜像

[root@localhost tomcat9]#docker build -t zzyytomcat9 .

构建镜像过程如下图:
DockerFile解析——自定义镜像Tomcat9_第1张图片
DockerFile解析——自定义镜像Tomcat9_第2张图片DockerFile解析——自定义镜像Tomcat9_第3张图片DockerFile解析——自定义镜像Tomcat9_第4张图片DockerFile解析——自定义镜像Tomcat9_第5张图片
查看镜像

[root@localhost tomcat9]#docker images

在这里插入图片描述

6、运行tomcat9镜像

[root@localhost]#docker run -d -p 9080:8080 --name myt9 -v /mydockerfile/tomcat9/test:/usr/local/apache-tomcat-9.0.8/webapps/test -v /mydockerfile/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.8/logs --privileged=true zzyytomcat9
038cad9053022a7734e31cc589b1ecd1215cf96142ded6158ec8e2b146214
[root@localhost]#docker ps

在这里插入图片描述
命令解释:

  • -d 后台运行容器, 并返回容器ID,也即启动守护式容器;
  • -p 随机端口映射;
  • –name=“容器新名字” 为容器指定一个名称;
  • -v /宿主机绝对路径目录:/容器内目录 添加容器卷;

7、验证

在浏览器中输入localhost:8080,访问效果如下:
DockerFile解析——自定义镜像Tomcat9_第6张图片

8、在自定义的tomcat9上发布演示实例

[root@localhost test]#pwd
/mydockerfile/tomcat9/test
[root@localhost test]#mkdir WEB-INF
[root@localhost test]#cd WEB-INF/
[root@localhost WEB-INF] vim web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  id="WebApp_ID" version="2.5">
  
  <display-name>test</display-name>
 
</web-app>
[root@localhost WEB-INF]# cd ..
[root@localhost test]# vim a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
  </head>
  <body>
    -----------welcome------------
    <%="i am in docker tomcat self "%>
    <br>
    <br>
    <% System.out.println("=============docker tomcat self");%>
  </body>
</html>
[root@localhost test]#pwd
/mydockerfile/tomcat9/test
[root@localhost test]# ll

在这里插入图片描述

[root@localhost test]# docker exec 038cad905302 ls -l /usr/local/apache-tomcat-9.0.8/webapps/test

在这里插入图片描述
因为第6步运行镜像的时候添加了容器卷,所以 在宿主机绝对路径目录/mydockerfile/tomcat9/test下添加文件,会同步到容器内目录 /usr/local/apache-tomcat-9.0.8/webapps/test

[root@localhost test]# docker restart  038cad905302
038cad905302

浏览器中访问localhost:9080/test/a.jsp,效果如下图:
DockerFile解析——自定义镜像Tomcat9_第7张图片

9、总结

DockerFile解析——自定义镜像Tomcat9_第8张图片

你可能感兴趣的:(docker)