-
Dockerfile 에서 CMD와 ENTRYPOINT의 차이카테고리 없음 2022. 8. 5. 01:41
docker run -it -v C:\udemy\section9:/app node-util npm init
이렇게 있다면
node-util이 이미지라고 가정한다면,
CMD는 끝에 npm 부터 끝까지 전부 overwritten한다.
그렇기에 일반적인 도커파일 보면 끝에 CMD가 있는데 이거로 docker run 해서 ~~~~ 끝에는 [이미지파일] + CMD에 적어준 명령어가 붙어서 run 하면 작동된다.
ENTRYPOINT ["npm"] 이라면
반면 ENTRYPOINT는 npm init 이라고 쓴거를 init만 써도 된다. 그러므로 npm start npm install 등등 있으면
docker run -it -v C:\udemy\section9:/app node-util init start install 이렇게 쓰면 된다.
FROM ubuntu CMD ["sleep", "10"]
이면 나중에 sleep 시간을 변경하고 싶다면 docker run ubuntu sleep 100 이렇게 써줘야한다.
FROM ubuntu ENTRYPOINT ["sleep"]
이렇게 하면 docker run ubuntu 100 이러면 된다.
기본값 설정을 위해 ENTRYPOINT 와 CMD가 같이 쓰면 된다.
FROM ubuntu ENTRYPOINT ["sleep"] CMD ["5"]
이러면 docker run ubuntu 하면 5초간 잠들고 docker run ubuntu 100 하면 100초간 잠든다.