当孩子定义另一个镜像时,Docker 父镜像的入口点会发生啥?

Posted

技术标签:

【中文标题】当孩子定义另一个镜像时,Docker 父镜像的入口点会发生啥?【英文标题】:What happens to entrypoint of Docker parent image when child defines another one?当孩子定义另一个镜像时,Docker 父镜像的入口点会发生什么? 【发布时间】:2017-03-28 07:43:04 【问题描述】:

假设我有一个由这个 Dockerfile 构建的 Docker 镜像parent

FROM ubuntu
ENTRYPOINT ["parent-entry"]

现在我在使用此代码构建的子图像中继承了这个 图像:

FROM parent
ENTRYPOINT ["child-entry"]

据我测试,子图像的入口点会覆盖父图像中的入口点。

但由于我是 Docker 新手,所以我不确定这一点。我的研究还没有得出令人满意的答案。那么上面的假设正确吗?

【问题讨论】:

ENTRYPOINT 状态的文档:只有 Dockerfile 中的最后一条 ENTRYPOINT 指令才会生效。 但是在这个例子中有两个 Dockerfile,每个都有自己的单一入口点。子 Dockerfile 继承自父映像。所以孩子必须知道父 Dockerfile 的 ENTRYPOINT 并且要么不覆盖它,要么重复它并添加到它,对吗? 【参考方案1】:

使用最后一个入口点,只使用最后一个。

您可以检查,在您的Dockerfile 中添加几行不同的ENTRYPOINT,然后检查会发生什么。

【讨论】:

如何添加脚本以在父 ENTRYPOINT 执行后运行?

以上是关于当孩子定义另一个镜像时,Docker 父镜像的入口点会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

Docker镜像

Docker Review - 使用docker file 构建镜像

CentOS7修改Docker容器和镜像默认存储位置

Docker镜像加速

无网络环境下docker镜像迁移

docker 学习 - 镜像