이렇게 작성된 Dockerfile로 만든 이미지로 docker run ubuntu-sleeper
라는 명령만 실행하면, CMD에 선언된 5초가 사용됨.
그래서 컨테이너는 최종적으로 sleep 5
라는 명령을 실행하게 된다.
그러나 만약 docker run ubuntu-sleeper 10
명령어를 실행한다면, 컨테이너는 최종적으로 sleep 10
명령을 실행하게 된다.
Entrypoint : 시작시 사용하는 명령어. 인수를 주입받을 수 있는 명령어 사용할 때 사용
CMD : 명령에 전달되는 기본 매개 변수
만약 위의 이미지로 pod를 생성한다면, 이렇게 작성할 수 있음
docker와 k8s에서의 command & arg 사용방법 차이
(docker) Entrypoint → (k8s) command
(docker) CMD → (k8s) args
아래의 yaml 로 pod 생성하면, simple-webapp 컨테이너는 python app.py --color green
이라는 명령을 실행함
apiVersion: v1
kind: Pod
metadata:
name: webapp-green
labels:
name: webapp-green
spec:
containers:
- name: simple-webapp
image: kodekloud/webapp-color
command: ["python", "app.py"]
args: ["--color", "green"]