【发布时间】:2021-06-09 21:22:14
【问题描述】:
如何在 Kubernetes 部署中更改 Docker
ENTRYPOINT,而不更改 DockerCMD?
在 Pod 中我会这样做
image: "alpine"
entrypoint: "/myentrypoint"
但这会覆盖ENTRYPOINT 和来自Dockerfile 的CMD。
documentation 没有提及它,但似乎错过了一个重要的用例。
【问题讨论】:
-
更改容器入口点的大多数情况也会重置命令; Dockerfile
ENTRYPOINT和docker run --entrypoint也都重置了命令部分。您是否有更具体的用例,您想重置入口点 (Kubernetescommand:) 但保留命令 (Kubernetesargs:)? -
ENTRYPOINT与docker exec一起使用,而CMD是默认值,docker run未指定任何内容。我可以使用默认的run服务(用CMD指定),FROM我正在扩展的图像。但我想自定义其ENTRYPOINT脚本来处理特定的exec命令。 -
我知道我可以将
command与args一起使用,但我不想手动与基本图像保持同步(我无法控制)。使用时很不方便:BaseImageWithCMD -> MyBaseImage -> MyActualImage -> KubernetesWithCustomENTRYPOINT -
启动容器时会使用入口点部分和命令部分(连接成带有参数的单个命令)。在
docker exec或kubectl exec中都没有使用。同样,更具体的用例可能有助于提出不同的方法。 -
我的用例是扩展入口点功能,因为当我在 pod 中运行的容器上使用
kubectl exec时。我想在执行非默认命令时执行额外的检查(基本图像入口点没有),
标签: docker kubernetes dockerfile command docker-entrypoint