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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker CMD(命令)和 ARGS(参数)使用整理相关的知识,希望对你有一定的参考价值。

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

总览

K8S集群创建Pod时,可以为其下的容器设置启动时要执行的命令及其参数。设置命令,就填写在配置文件的command字段下,如果要设置命令的参数,就填写在配置文件的args字段下。一旦Pod创建完成,该命令及其入参无法再进行更改。

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

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

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

规则

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

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

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

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

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

参考答案:

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

以上是关于Docker CMD(命令)和 ARGS(参数)使用整理的主要内容,如果未能解决你的问题,请参考以下文章

使用 docker run 命令将参数传递给 Dockerfile 中的 CMD

话编程 |手把手教你开发docker一样的命令行

docker中的命令参数(小白常用)

Docker入门实践之dokerfile编写(2)

RUN vs CMD vs ENTRYPOINT - 每天5分钟玩转 Docker 容器技术(17)

docker安装镜像