kubernetes中的command和args 与 dockerfile中的ENTRYPOINT和CMD的关系
Kubernetes cmd 关系 Command Dockerfile args
2023-06-13 09:18:41 时间
command args
- 如果指定了 containers.command ,Dockerfile 中的 ENTRYPOINT 会被覆盖且 CMD指令 会被忽略。
- 如果指定了 containers.args,Dockerfile 中的 ENTRYPOINT 继续执行, CMD指令 被覆盖
ENTRYPOINT | CMD | command | args | finally |
---|---|---|---|---|
["/ep1"] | [“foo”, “bar”] | ep-1 foo bar | ||
["/ep1"] | [“foo”, “bar”] | ["/ep-2"] | ep-2 | |
["/ep1"] | [“foo”, “bar”] | [“zoo”, “boo”] | ep-1 zoo boo | |
["/ep1"] | [“foo”, “bar”] | ["/ep-2"] | [“zoo”, “boo”] | ep-2 zoo boo |
CMD ENTRYPOINT
我们大概可以总结出下面几条规律:
- 如果 ENTRYPOINT 使用了 shell 模式,CMD 指令会被忽略。
- 如果 ENTRYPOINT 使用了 exec 模式,CMD 指定的内容被追加为 ENTRYPOINT 指定命令的参数。
- 如果 ENTRYPOINT 使用了 exec 模式,CMD 也应该使用 exec 模式。
还有一点需要注意,如果使用 docker run --entrypoint
覆盖了 Dockerfile 中的 ENTRYPOINT , 同时 CMD 指令也会被忽略
真实的情况要远比这三条规律复杂,好在 docker 给出了官方的解释,如下图所示:
相关文章
- 【K8S专栏】Kubernetes工作负载管理
- 搭建Kubernetes集群基于calico网络插件
- 程序员都应该懂Kubernetes的基本概念和关键组件是什么吗?
- Kubernetes 上千规模 Pod 最佳实践
- 自建 Kubernetes 集群
- Helm 安装 Kubernetes 监控套件
- 通过Kubecost量化Kubernetes使用成本
- 使用 Kubernetes 和 Istio Service Mesh 构建混合云
- Kubernetes集群部署之一系统环境初始化详解架构师
- 使用Cmd命令行访问MySQL数据库(cmd访问mysql)
- 如何在CMD中快速打开MySQL服务器(在cmd中打开mysql)
- 利用CMD命令行完成MySQL数据库操作(用cmd操作mysql)
- MSSQL调用CMD命令实现数据库管理功能(mssql调用cmd命令)
- 用CMD配置MySQL账号密码(cmd配置mysql密码)
- 在CMD界面修改MySQL密码(cmd界面mysql修改密码)
- 用CMD命令查看MySQL服务状态(cmd查看mysql服务)
- 过程通过CMD查看MySQL存储过程(cmd查看mysql存储)
- 状态 通过CMD查看MySQL服务器状态的方法(cmd如何看mysql)
- Cmd下载MySQL,一步到位(cmd如何下载mysql)
- 使用CMD命令快速执行Mysql代码(cmd命令mysql代码)
- 探索MySQL深入使用CMD命令(cmd命令mysql-v)
- Windows系统下如何使用CMD操作MySQL数据库(cmd中有MySQL的吗)
- 如何在CMD管理器中新建MySQL数据表(cmd中mysql新建表)