(八)DockerFile案例

一、DockerFile案例-自定义镜像mycentos

  1、Base镜像(scratch)

    Docker Hub 中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来

  2、自定义镜像mycentos

    a、编写

      ①、基础docker

     

      ②、编写Dockerfile文件,内容如下:

       

      ③、myCentos内容DockerFile

    b、构建

      命令:docker build -t 新镜像名字:TAG.

      注意:最后面有一个点

      代码示例:

       

    c、运行

      命令:docker run -it 新镜像名字:TAG

    d、列出镜像的变更历史

      命令:docker history 镜像名

  3、CMD/ENTRYPOINT镜像案例

      ①、CMD

          DockerFile 中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换

           tomcat的讲解演示:

      docker run -it -p 8888:8080 tomcat ls -l

      相当于在DockerFile的最后面加了一句 CMD ls -l,就覆盖了DockerFile原来的CMD ["catalina.sh","run"]

     ②、ENTRYPOINT

         docker run 之后的参数会被当做参数传递给ENTRYPOINT,之后形成新的命令组

       Case:制作CMD版可以查询IP信息的容器

        a、curl命令详解:

          

        b、问题:

          如果我们希望显示HTTP头信息,就需要加上-i参数

        c、WHY:但是我们直接在run命令后面加 -i ,系统会报错

          

        d、制作ENTROYPOINT版查询ip信息的容器

          

 

           命令使用示例:

                                 

         ③、ONBUILD命令

          在父镜像的DockerFile文件中加上ONBUILD命令,当有子镜像继承这个父镜像的时候,该语句就会被触发。

               父镜像DockerFile文件内容:

               

 

          在子镜像继承这个父镜像后,build子镜像DockerFile文件的效果如下:父镜像中的ONBUILD被触发

              

   4、自定义镜像Tomcat9

      步骤如下:

         ①、 mkdir -p /zzyyuse/mydockerfile/tomcat9

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

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

          apache-tomcat-9.0.8.tar.gz

          jdk-8u171-linux-x64.tar.gz

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

        DockerFile文件内容如下:

        

 

 

 

      ⑤、 构建

        

      ⑥、run

        

      ⑦、验证

        访问启动的tomcat链接

      ⑧、结合前述的容器卷将测试的web服务test发布

        a、总体概述

          

        b、web.xml

          

        c、a.jsp

          

        d、测试

          

 

 二、DockerFile 总结

 

posted on 2020-12-05 22:46  向往的生活  阅读(431)  评论(0编辑  收藏  举报

导航

页面底部