Dockerfile 案例-ONBUILD 命令案例 | 学习笔记

简介: 快速学习 Dockerfile案例-ONBUILD 命令案例

开发者学堂课程【Docker 快速入门:Dockerfile 案例-ONBUILD 命令案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/616/detail/9410


Dockerfile 案例-ONBUILD 命令案例

接下来介绍 ONBUILD,

当构建一个被继承的 dockerfile 时,注意是被继承,父镜像在被子继承后父镜像的onbulid 被触发。

现在是 dockerfile4, 输入 vim dockerfile4,可以看到有这样一个 dockerfile4。

image.png

假设在这里输入 ONEBUILD RUN,也就说如果别人继承了我,我就要被触发,因为我是父,所以在 ONEBUILD RUN 后输入echo ‘’father’’onbulid----886’’,比方我就叫 Father。

假设有一个镜像继承了我,那么只要它运行了,我这个父镜像将会打出这句话。ONBUILD RUN echo 在构建时就会打出 father images onbulid----886 这句话。

现在 dockerfile4 已经改变了,重新输入 docker build -f/mydocker/ Dockerfile4-t myip_father,要注意大小写。这行代码没有任何问题。

如下图所示:

image.png

接着输入 docker Images,那么可以看到这里有个 myip_ father,接下来输入cp Docker file3 Dockerfile5,再切换另一个页面,输入 vim Dockerfile5 那么这时都没有任何问题,但关键是这里有问题,不再继承 centos,而是继承myip_father 这个镜像。

那么输入 docker images ,可以看到有 myip_father,之后在下面输入cat Dockerfile5 ,也有 myip_father。当构建 Bulid5 时,这个子类就会触发父类,那么就应该打出刚才 echo 那行代码。

输入 docker bulid-f/mydocker/Dockerfile5-t myip_son. 那么这时,这一行的构建过程将会出现什么呢?

出现了一行红色代码,执行了一个 Bulid 的触发器,ONBUILD 就是触发器,触发谁?触发 Trigger 0.Run echo ‘’father images onbuild----886’’这一行代码,。

打印 father 镜像再构建。不用关心 step 0 这一步,这步是它继承以后自动执行,但是红的这一步是需要关心的,子类在构建的时候父类的触发器就像有个倒钩字一样会执行。

如下图所示:

image.png

image.png

现在看一个差不多的案例,这里有个红色的触发器执行了这么一行代码:Trigger 0,Run echo ‘’now,build action is ok,那么谁被执行呢?

执行 build 是父类被执行,这一块内容切记不要搞错,这就是 on build 命令的讲解。

相关文章
|
6月前
|
Ubuntu Docker 容器
深入理解Dockerfile:构建镜像的详细解释与常用命令(下)
Docker 是一种流行的容器化平台,可将应用程序和其依赖项打包到一个独立的、可移植的容器中。Dockerfile 是构建 Docker 镜像的文本文件,它包含了一系列的指令和配置,用于定义镜像的构建过程。本文将深入解释 Dockerfile 的工作原理,并介绍常用的 Dockerfile 指令和构建命令,以帮助读者更好地理解和使用 Docker。
167 0
|
6月前
|
JavaScript Docker 容器
Docker中文件拷贝命令的详细解释与真实案例
Docker中文件拷贝命令的详细解释与真实案例
327 0
|
6月前
|
应用服务中间件 nginx Docker
深入理解Dockerfile:构建镜像的详细解释与常用命令(上)
Docker 是一种流行的容器化平台,可将应用程序和其依赖项打包到一个独立的、可移植的容器中。Dockerfile 是构建 Docker 镜像的文本文件,它包含了一系列的指令和配置,用于定义镜像的构建过程。本文将深入解释 Dockerfile 的工作原理,并介绍常用的 Dockerfile 指令和构建命令,以帮助读者更好地理解和使用 Docker。
1743 0
|
运维 Cloud Native 网络协议
【云原生】Docker—Dockerfile写法与用法以及dockerfile简介与构建镜像详解【附加实战】
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令(Instruction)和操作命令;每一条指令构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建(也就是你要执行的操作命令)。
519 0
【云原生】Docker—Dockerfile写法与用法以及dockerfile简介与构建镜像详解【附加实战】
|
运维 Java 应用服务中间件
Docker——Dockerfile的理解 & 案例实操
Docker——Dockerfile的理解 & 案例实操
Docker——Dockerfile的理解 & 案例实操
|
Java 应用服务中间件 nginx
DockerFile详解以及测试案例
DockerFile详解以及测试案例
199 0
|
NoSQL Linux Redis
docker快速入门(三)---- DockerFile相关案例
docker快速入门(三)---- DockerFile相关案例
96 0
|
存储 关系型数据库 MySQL
Dockerfile命令及实践构建一个网站
dockerfile用于构建docker镜像的,部署一个用于运行你所需的容器环境。相当一个脚本,通过dockerfile自己的指令,来构建软件依赖、文件依赖、存储、 定制docker镜像的方式有两种: 手动修改容器内容,导出新的镜像 基于Dockerfile自行编写指令,基于指令流程创建镜像。
140 0
|
缓存 网络协议 Linux
Docker(六)进阶:Dockerfile概述与用法(两万字入门到精通)
EXPOSE指令告诉Docker容器在运行时监听指定的网口。可以指定端口侦听的协议类型是TCP还是UDP,如果不指定协议类型,默认为TCP。
413 0
Docker(六)进阶:Dockerfile概述与用法(两万字入门到精通)
|
存储 Unix 数据安全/隐私保护
Docker官方文档学习笔记(三):总结与补充
Docker官方文档学习笔记(三):总结与补充
276 0
Docker官方文档学习笔记(三):总结与补充
下一篇
无影云桌面