ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dockerfile CMD vs ENTRYPOINT
    K8S 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를 지정해줄 수 있다. 

     

    다음을 보자. 

     

     

     

    반응형

    댓글

Designed by Tistory.