docker中怎样覆盖掉父镜像entrypoint

请教一个问题:
父镜像和子镜像同时指定了entrypoint
子镜像好像不覆盖父镜像的entrypoint
怎样能把父镜像的entrypoint覆盖掉?

阅读 20.6k
2 个回答

事实上,子镜像的ENTRYPOINT能够覆盖父镜像的ENTRYPOINT。不妨看一个例子:

父镜像Dockerfile

FROM ubuntu:14.04
ENTRYPOINT ["whoami"]

构建父镜像

sudo docker build -t kiwenlau/father .

子镜像Dockerfile

FROM kiwenlau/father
ENTRYPOINT ["hostname"]

构建子镜像:

sudo docker build -t kiwenlau/son .

运行父镜像:

sudo docker run kiwenlau/father
root

运行子镜像

sudo docker run kiwenlau/son
cb2b314c47db

可知, 父镜像输出了容器内的用户名, 而子镜像输出了容器的主机名。子镜像的ENTRYPOINT覆盖了父镜像的ENTRYPOINT

以最后一个ENTRYPOINT为准,前面的都会被覆盖掉

推荐问题
宣传栏