(八)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 总结