DOCKERFILE有一个ENTRYPOINT参数,在编写Kubernetes部署yaml文件时,在COMMAND的Container规范中有一个参数.
我无法弄清楚有什么区别以及如何使用它们?
最佳答案
Kubernetes为我们提供了有关如何使用这些命令的多种选择:
当您覆盖Kubernetes .yaml文件中的默认Entrypoint和Cmd时,这些规则适用:
>如果您没有为Container提供命令或参数,则为默认值
使用Docker镜像中定义的.
>如果您为Container提供命令但没有args,则只提供
使用了提供的命令.默认的EntryPoint和默认的Cmd
在Docker镜像中定义的内容将被忽略.
>如果仅提供Container的args,则为默认的Entrypoint
在Docker镜像中定义的是使用您提供的args运行的.
>如果你提供一个命令和args,默认的Entrypoint和
默认的Docker镜像中定义的Cmd将被忽略.你的命令是
用你的args运行.
这是一个例子:
Dockerfile:
FROM alpine:latest
COPY "executable_file" /
ENTRYPOINT [ "./executable_file" ]
Kubernetes yaml文件:
spec:
containers:
- name: container_name
image: image_name
args: ["arg1","arg2","arg3"]
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/