tus*_*oyd 30 containers docker kubernetes dockerfile
DOCKERFILE有一个ENTRYPOINT参数,在编写Kubernetes部署yaml文件时,在COMMAND的Container规范中有一个参数.
我无法弄清楚有什么区别以及如何使用它们?
Ber*_*sal 43
Kubernetes为我们提供了有关如何使用这些命令的多种选择:
当您覆盖Kubernetes .yaml文件中的默认Entrypoint和Cmd时,这些规则适用:
这是一个例子:
Dockerfile:
FROM alpine:latest
COPY "executable_file" /
ENTRYPOINT [ "./executable_file" ]
Run Code Online (Sandbox Code Playgroud)
Kubernetes yaml文件:
spec:
containers:
- name: container_name
image: image_name
args: ["arg1", "arg2", "arg3"]
Run Code Online (Sandbox Code Playgroud)
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
Mer*_*ury 18
基本上 COMMAND 可以覆盖 docker ENTRYPOINT 中提到的内容
简单的例子:
要覆盖 dockerfile ENTRYPOINT,只需将这些字段添加到您的 K8s 模板中(查看命令和args ):
apiVersion: v1
kind: Pod
metadata:
name: command-demo
labels:
purpose: demonstrate-command
spec:
containers:
- name: command-demo-container
image: debian
command: ["/bin/sh"]
args: ["-c", "printenv; #OR WHATEVER COMMAND YOU WANT"]
restartPolicy: OnFailure
Run Code Online (Sandbox Code Playgroud)
K8s文档:
命令字段对应于某些容器运行时中的入口点。请参阅下面的注释。
您可以输入 Notes 链接(K8s 文档以更好地了解此命令如何覆盖 K8s ENTRYPOINT)
bil*_*ohi 15
关键的区别在于术语.Kubernetes认为Docker用于定义容器接口的术语很笨拙,因此他们使用了不同的重叠术语.由于绝大多数容器Kubernetes管弦乐队都是Docker,因此混乱不堪.
具体来说,docker入口点是kubernetes命令,docker命令是kubernetes args,如下所示:https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes .
-------------------------------------------------------------------------------------
| Description | Docker field name | Kubernetes field name |
-------------------------------------------------------------------------------------
| The command run by the container | Entrypoint | command |
| The arguments passed to the command | Cmd | args |
-------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
@ Berk关于Kubernetes如何使用这些运行时选项的描述是正确的,但只要你翻译这些术语,它对于docker run如何使用它们也是正确的.关键是要了解任一系统中图像和运行规范之间的相互作用,并在谈到另一个时翻译术语.
| 归档时间: |
|
| 查看次数: |
16409 次 |
| 最近记录: |