Docker CMD(命令)和 ARGS(参数)使用整理

Docker CMD(命令)和 ARGS(参数)使用整理

总览

K8S集群建立Pod时,能够为其下的容器设置启动时要执行的命令及其参数。设置命令,就填写在配置文件的command字段下,若是要设置命令的参数,就填写在配置文件的args字段下。一旦Pod建立完成,该命令及其入参没法再进行更改。app

配置文件中设置了容器启动时要执行的命令及其参数,那么容器镜像中自带的命令 与参数将会被覆盖而再也不执行。若是配置文件中只是设置了入参,却没有设置其对应的命令,那么容器镜像中自带的命令会使用该新参数做为其执行时的参数。ide

Docker 与 Kubernetes中对应的字段名称。

描述 Docker 字段名称 Kubernetes 字段名称
容器运行的命令 Entrypoint command
传递给命令的参数集合 Cmd args

规则

若是要覆盖默认的 Entrypoint 与 Cmd,须要遵循以下规则:get

若是在容器配置中没有设置command 或者 args,那么将使用Docker镜像自带的命 令及其入参。kubernetes

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

若是在容器配置中只设置了args,那么Docker镜像中自带的命令会使用该新入参做为 其执行时的入参。io

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

参考答案:

https://kubernetes.io/zh/docs/tasks/inject-data-application/define-command-argument-container/class

相关文章
相关标签/搜索