一、需求

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

二、ONBUILD指令

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

三、实例

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

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

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

  1. 配置 Docker 镜像加速 -小白实操记录

    Docker 国内仓库和镜像 由于网络原因,我们在pull Image 的时候,从Docker Hub上下载会很慢...所以,国内的Docker爱好者们就添加了一些国内的镜像(mirror),方便大家 ...

  2. 靠推广电话卡月入过万,适合新人小白实操的好项目,保姆级教程分享

    在如今这个信息化时代,手机已经成为了人们生活中必不可少的一部分.而随着通讯技术的不断发展,电话卡也成为了人们日常生活中必不可少的一部分.而推广电话卡成为了一种新的赚钱方式,许多人通过推广电话卡月入过万 ...

  3. Docker教程(一)入门教程

    1.什么是 Docker 官网的介绍是"Docker is the world's leading software container platform." 官方给Docker的 ...

  4. 小白实操ESP8266AT固件烧录,版本1.7.1,希望对爱玩ESP8266的开发小伙伴有帮助!

    从官方网站下载esp8266的AT固件,版本1.7.1.烧录到开发板中,使用AT指令操作esp8266 任务列表 1.重启模块: 2.查询固件版本号: 3.修改波特率为9600: 4.扫描当前环境可被 ...

  5. 文件系统 fsck和e2fsck使用-小白实操记录

    1 区别 e2fsck只是针对ext2.ext3.ext4等ext系列文件系统的工具,fsck支持检查各种不同的文件系统,包含ext系列文件系统. 2 e2fsck命令 指令:e2fsck 使用权限 ...

  6. idea设置console控制台显示内容大小-小白实操记录

    操作步骤如下 File-Settings→Editor→General→Console

  7. IDEA如何删除项目-小白实操记录

    1 项目名称上右击,点击"Remove Module"删除: 2 关闭IDEA 移除后删除 idea文件夹即可

  8. ntp 服务端配置(/etc/ntp.conf配置详解) -小白实操记录

    1 ntp 安装查看 1.1 安装命令 apt-get install ntp 1.2 查看服务是否启动 service --status-all 或者 ps -aux | grep ntp 1.3 ...

  9. Ubuntu 设置timesyncd时间同步、时区、 NTP同步对时-小白实操记录

    1 timesyncd时间同步 Ubuntu 内置了时间同步,默认情况下使用systemd的timesyncd服务激活. 查找服务器上date最基本命令是date . 任何用户都可以输入此命令来打印日 ...

  10. linux上下行网速测试-小白实操记录

    speedtest是一个使用python编写的命令行脚本,通过调用speedtest.net测试上下行的接口来完成速度测试.最后我会测试运维生存时间所在服务器的外网速度. 需要python2.4-3. ...

最新文章

  1. html左浮动不管用图片往下放,html - 如何在HTML / CSS中水平对齐图像(浮动和显示内联块不起作用) - 堆栈内存溢出...
  2. PTA团体程序设计天梯赛-L2-019 悄悄关注
  3. MacOS开发必备工具brew,安装nginx反向代理,替代linux工具 apt-get和 yum...
  4. 我是如何用Worktile进行敏捷开发的
  5. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
  6. 通过反射越过泛型检查
  7. python tkinter进度条_在python3.7中更新tkinter进度条
  8. App 留客率出炉:iPhone 大胜 Android!
  9. java 蓝桥杯 数字游戏
  10. aix升级openssh_AIX6.1上源码编译升级openssh6.6p1
  11. [HeadFirst-HTMLCSS学习笔记][第八章扩大你的词汇量]
  12. python能做的java能做吗_java – Jython不能做什么Python?
  13. 10个python办公黑科技,助你办公效率提高100倍
  14. IIS 部署.NetCore
  15. python xlrd 错误:xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF reco
  16. VB编程:UBound获取数组上限;LBound获取数组下限-25_彭世瑜_新浪博客
  17. wkhtmltopdf 照片不显示的问题
  18. 【论文】【ACL2018】Neural Document Summarization by Jointly Learning to Score and Select Sentences
  19. 利用pandas模块实现excel多行文本合并
  20. 编译原理(第二版)张素琴 课后代码 A.2 C版本

热门文章

  1. JMP比较组均值,检查差异
  2. 并行开发 5.同步机制(下)
  3. PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理
  4. python 函数篇(2)
  5. 如何理解linux多用户多任务
  6. LeetCode:3Sum_15
  7. NodeJs之npm
  8. c#中抽象类和接口异同
  9. 项目管理系统--设计篇--第五篇
  10. 最速下降法/steepest descent,牛顿法/newton,共轭方向法/conjugate direction,共轭梯度法/conjugate gradient 及其他