美文网首页
Kubernetes中docker的Entrypoint

Kubernetes中docker的Entrypoint

作者: 杰森斯坦sen | 来源:发表于2020-09-22 15:45 被阅读0次

Kubernetes指定docker的Entrypoint

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

表 1

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

  • 如果在容器配置中没有设置 command 或者 args,那么将使用 Docker 镜像自带的命令及其参数。

  • 如果在容器配置中只设置了 command 但是没有设置 args,那么容器启动时只会执行该命令, Docker 镜像中自带的命令及其参数会被忽略。

  • 如果在容器配置中只设置了 args,那么 Docker 镜像中自带的命令会使用该新参数作为其执行时的参数。

如果在容器配置中同时设置了 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为容器设置启动时要执行的命令和参数

相关文章

网友评论

      本文标题:Kubernetes中docker的Entrypoint

      本文链接:https://www.haomeiwen.com/subject/dcvwyktx.html