-
Dockerfile CMD vs ENTRYPOINTK8S 2021. 6. 15. 17:56
Dockerfile을 이용해서 ubnutu image를 빌드하고 컨테이너가 시작되자마자 sleep 5라는 커맨드를 실행하고 싶다.
이때는 dockerfile에서 CMD sleep 5 라고 지정해주면 컨테이너가 시작하자마자 sleep 5가 실행된다.
하지만 sleep 5 CMD를 가진 우분투 이미지를 가지고 sleep 10을 실행하고 싶을때는 어떻게 해야할까?
docker run ubuntu-sleeper sleep 10 으로 실행할 수도 있겠지만
sleep이 아닌 복잡한 커맨드라면 힘들 수 있다.
이때 ENTRYPOINT를 이용하면 이러한 문제를 쉽게 해결할 수 있다.
위와 같이 ENTRYPOINT sleep으로 지정한 후, container를 생성할 때, docker run ubuntu-sleeper 10 이라 해주면
ubuntu 컨테이너 내부에서는 sleep 10 커맨드를 정상적으로 실행시킨다.
즉 argument가 필요할 때는 CMD말고 ENTRYPOINT를 이용하면 된다.
하지만 반대로 argument를 지정해주지 않으면 에러가 난다.
argument 지정 없이도 default로 값을 지정해줄 수는 없을까?
이러한 경우에는 CMD를 이용하여 default argument를 지정해줄 수 있다.
다음을 보자.
반응형'K8S' 카테고리의 다른 글
Istio Automation Injection (0) 2021.06.17 K8S command와 args (0) 2021.06.15 K8S Multiple Scheduler 생성하기 (0) 2021.06.14 K8S Scheduling 정리2 (Resource, Daemonsets, Static pod) (0) 2021.06.13 K8S Scheduling 정리 (Taint, Toleration, Node Affinity) (0) 2021.06.12