父docker中的CMD是否被子docker镜像中的CMD/ENTRYPOINT覆盖?

2023-12-27

我正在尝试深入了解 docker。我知道CMD or ENTRYPOINT用于指定docker镜像的启动/可运行命令CMD被覆盖ENTRYPOINT。但我不知道,当父 docker 镜像也有时,它是如何工作的CMD OR ENTRYPOINT或两者 ?

子镜像是否从父镜像继承这些值?如果是这样,那么ENTRYPOINT在父图像覆盖中CMD在儿童形象中?

我知道这个问题已经在以下位置讨论过https://github.com/docker/compose/issues/3140 https://github.com/docker/compose/issues/3140。但是,这个讨论已经很老了(2-3年前),它并没有清楚地回答我的问题。

提前致谢。


如果您定义一个ENTRYPOINT在子图像中,它将清空CMD如中所确定的这个问题 https://github.com/moby/moby/issues/5147。目标是避免出现令人困惑的情况,即入口点作为 args 传递给您不再希望运行的命令。

除了这种特定情况之外,ENTRYPOINT and CMD是继承的,并且可以被子映像甚至同一 Dockerfile 的后续步骤单独覆盖。图像中仅存在其中每个值的一个值,并且最后定义的值具有优先权。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

父docker中的CMD是否被子docker镜像中的CMD/ENTRYPOINT覆盖? 的相关文章

随机推荐