简介

父镜像在被子镜像继承后父镜像的ONBUILD被触发,可以把ONBUID理解为一个触发器。编写Dockerfile的时候,其他命令都是为了自身镜像服务的,只有ONBUILD是为了子镜像服务

使用

构建父镜像

编写父镜像DockerFile,命名为:parent_df,内容如下:

1
2
3
4
5
FROM centos

ONBUILD RUN yum -y install vim

CMD /bin/bash

构建父镜像

1
docker build -f parent_df -t parent .

构建子镜像

编写子镜像DockerFile,命名为:son_df,内容如下:

1
FROM parent

构建子镜像

1
 docker build -f son_df -t son .

结果

当构建子镜像的时候,父镜像的ONBUILD会触发,子镜像直接安装vim,父镜像是没有安装vim的。所以使用父镜像创建的容器使用vim命令会报错,而用子镜像创建的容器可以使用vim命令