Docker教程小白实操入门(16)--如何使用ONBUILD指令在构建下一级镜像时做些什么

网友投稿 275 2022-10-22

Docker教程小白实操入门(16)--如何使用ONBUILD指令在构建下一级镜像时做些什么

一、需求

当前镜像被作为基础镜像,去构建下一级镜像时,执行一些指令

二、ONBUILD指令

# ONBUILD添加一个将来执行的触发器(trigger)ONBUILD <其它指令>

​​ONBUILD​​​ 是一个特殊的指令,它后面跟的是其它指令,比如​​RUN​​​,​​COPY​​等,而这些指令,在当前镜像构建时并不会被执行。只有当以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行。在镜像构建完成后,触发器指令会被清除,不会被子孙镜像继承。在构建过程后,触发器指令会被存储在镜像详情中,其主键是​​OnBuild​​​,可以使用​​docker inspect​​命令查看。

三、实例

#创建一个空文件夹,并进入其中mkdir newdir4cd newdir4#创建一个Dockerfile文件touch Dockerfile #输入Dockerfile文件内容#********** Begin *********##以busybox为基础镜像echo 'FROM busybox' > Dockerfile echo 'ONBUILD RUN touch 1.txt' >> Dockerfile #********** End **********##文件内容完毕,在当前文件夹中执行#********** Begin *********##以该Dockerfile构建一个名为image1的镜像docker build -t image1 .#********** End **********# # 可以查看有哪些触发器docker inspect image1# 创建容器docker run image1 cat 1.txt

提示不存在1.txt文件,现在我们重新基于image1新建一个镜像

#创建一个空文件夹,并进入其中mkdir newdir5cd newdir5#创建一个Dockerfile文件touch Dockerfile #输入Dockerfile文件内容#********** Begin *********##以image1为基础镜像echo 'FROM image1' > Dockerfile echo 'RUN echo 'hello'' >> Dockerfile #********** End **********##文件内容完毕,在当前文件夹中执行#********** Begin *********##以该Dockerfile构建一个名为image2的镜像docker build -t image2 .#********** End **********# # 创建容器docker run image2 cat 1.txt

参考:​​https://educoder.net/shixuns/zawfjtnm/challenges​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker教程小白实操入门(21)--如何备份、恢复数据卷
下一篇:Java十分钟精通包装类的使用与操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~