Kubernetes中docker的Entrypoint

2020-09-22  本文已影响0人  杰森斯坦sen

Kubernetes指定docker的Entrypoint

下表给出了 Docker 与 Kubernetes 中对应的字段名称。

表 1

如果要覆盖默认的 Entrypoint 与 Cmd,需要遵循如下规则:

如果在容器配置中同时设置了 command 与 args,那么 Docker 镜像中自带的命令及其参数会被忽略。 容器启动时只会执行配置中设置的命令,并使用配置中设置的参数作为命令的参数。

Docker的Entrypoint和CMD

Docker建议使用ENTRYPOINT来设置镜像的主命令,然后再使用CMD指令来提供默认的参数。如果CMD用于给ENTRYPOINT提供默认的参数,那么CMD和ENTRYPOINT指令都应该以JSON数组的形式来定义。

FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]

Docker官网的定义:

An ENTRYPOINT allows you to configure a container that will run as an executable.

The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.

如果docker run没有指定任何的执行命令或者dockerfile里面也没有ENTRYPOINT,那么,就会使用CMD 指定的默认的执行命令执行。所以CMD作为默认行为是可以被ENTRYPOINT覆盖的。

Reference

Kubernetes为容器设置启动时要执行的命令和参数

上一篇 下一篇

猜你喜欢

热点阅读