도커 엔트리 포인트와 쿠버네티스 컨테이너 사양 명령의 차이점은 무엇입니까?
Docker 파일에는 ENTRYPOINT에 대한 매개 변수가 있으며 Kubernetes 배포 YAML 파일을 작성하는 동안 COMMAND의 컨테이너 사양에 매개 변수가 있습니다.
무엇이 다른지, 각각은 어떻게 사용되는지 알 수 없습니다.
Kubernetes는 다음 명령을 사용하는 방법에 대한 여러 가지 옵션을 제공합니다.
Kubernetes.yaml 파일에서 기본 Entrypoint 및 Cmd를 재정의하면 다음 규칙이 적용됩니다.
- 컨테이너에 대한 명령이나 인수를 제공하지 않으면 도커 이미지에 정의된 기본값이 사용됩니다.
- 컨테이너에 대한 인수만 제공하는 경우 도커 이미지에 정의된 기본 진입점은 제공한 인수로 실행됩니다.
- 컨테이너에 대한 명령을 제공하는 경우 제공된 명령만 사용됩니다.Docker 이미지에 정의된 기본 EntryPoint 및 기본 Cmd는 무시됩니다.명령은 제공된 인수를 사용하여 실행됩니다(제공되지 않은 경우 인수 없음).
다음은 예입니다.
도커 파일:
FROM alpine:latest
COPY "executable_file" /
ENTRYPOINT [ "./executable_file" ]
쿠베르네테스 얌 파일:
spec:
containers:
- name: container_name
image: image_name
args: ["arg1", "arg2", "arg3"]
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
핵심적인 차이점은 용어입니다.Kubernetes는 Docker가 컨테이너에 대한 인터페이스를 정의하기 위해 사용한 용어가 어색하다고 생각했고, 따라서 서로 다른 중복된 용어를 사용했습니다.쿠베르네테스가 지휘하는 컨테이너의 대부분이 도커이기 때문에 혼란이 많습니다.
구체적으로 도커 진입점은 kubernetes 명령이고, 도커 명령은 kubernetes 인수입니다.
-------------------------------------------------------------------------------------
| Description | Docker field name | Kubernetes field name |
-------------------------------------------------------------------------------------
| The command run by the container | Entrypoint | command |
| The arguments passed to the command | Cmd | args |
-------------------------------------------------------------------------------------
@쿠버네티스가 이러한 런타임 옵션을 사용하는 방법에 대한 버크의 설명은 정확하지만, 용어를 번역하는 한 도커 실행이 이러한 옵션을 사용하는 방법에도 정확합니다.핵심은 두 시스템에서 이미지와 실행 사양 간의 상호 작용을 이해하고 다른 시스템에 대해 말할 때마다 용어를 번역하는 것입니다.
기본적으로 명령은 도커 엔트리 포인트에 언급된 내용을 무시할 수 있습니다.
간단한 예:
도커 파일 ENTRYPOINT를 재정의하려면 다음 필드를 K8s 템플릿에 추가합니다(명령 및 인수 참조).
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
K8s 문서:
명령 필드는 일부 컨테이너 런타임에서 진입점에 해당합니다.아래 참고 사항을 참조하십시오.
Notes 링크를 입력할 수 있습니다(이 명령이 K8s ENTRYPOINT를 재정의하는 방법에 대한 자세한 내용을 보려면 K8s 설명서를 참조하십시오).
YAML 파일의 명령은 도커 파일의 엔트리 포인트에 언급된 내용을 덮어씁니다.
언급URL : https://stackoverflow.com/questions/44316361/difference-between-docker-entrypoint-and-kubernetes-container-spec-command
'code' 카테고리의 다른 글
Excel 2007으로 Office Automation을 하려고 하지만 Excel 2003을 계속 사용합니다. (0) | 2023.09.05 |
---|---|
appendChild에서 추가한 원하지 않는(빈) xmlns 특성 제거 (0) | 2023.09.05 |
왜 tqdm 인쇄가 같은 라인을 업데이트하는 대신 새로운 라인으로 진행됩니까? (0) | 2023.09.05 |
Spring Boot REST API에서 시간 초과를 설정하는 방법은 무엇입니까? (0) | 2023.09.05 |
도커 컨테이너에 셸링한 후 파일을 편집하려면 어떻게 해야 합니까? (0) | 2023.09.05 |