-
카테고리
-
세부 분야
풀스택
-
해결 여부
해결됨
CMD, ENTRYPOINT 관련 문의입니다..
23.12.15 11:15 작성 조회수 157
0
안녕하세요 강사님.
Dockerfile 작성을 위한 주요명령 익히기4 의 10분 10초 처럼 Cmd의 값이 뒤에 붙지않고 null로 뜨는데,,
로그를 봤을때는 hello /bin/sh hi
로 Cmd 인자가 정상적으로 붙습니다.
Dockerfile 은
정상적으로 작성했습니다.
혹시 제가 놓친부분이 또 있을까요? 몇번 강의돌려도 null로 뜨는건 똑같아서..
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
Dockerfile 작성을 위한 주요 명령 익히기4
강의실 바로가기
답변을 작성해보세요.
1
잔재미코딩 DaveLee
지식공유자2023.12.16
안녕하세요. 답변도우미입니다.
제가 정확히 이해한 것인지 조금 걱정이 되는데요. 기본적으로는 Dockerfile의 내용을 보여주셨는데요. 해당 Dockerfile 에서는 ENTRYPOINT
가 설정된 것을 볼 수 있습니다.
이 경우, ENTRYPOINT
에 ["/bin/echo", "hello"]
가 명시되어 있으므로, 컨테이너가 시작될 때마다 echo hello
명령이 실행되도록 설정되어 있습니다.
그리고, Dockerfile 에서 보여주신대로 ENTRYPOINT
만 정의되어 있고, CMD
가 정의되어 있지 않아서, docker inspect
에서 Cmd
는 null
로 나올 수 있습니다.
이런 경우, 컨테이너를 실행할 때 docker run
명령어 뒤에 추가적인 인자를 제공하지 않으면, ENTRYPOINT
에 명시된 명령만 실행되고, 추가적인 인자를 제공하면, 해당 인자가 ENTRYPOINT
이후에 붙어서 인자까지 넣어져 실행됩니다.
그래서 기본적으로는 설정하신대로 된 것으로 이해가 되긴 하거든요... 또한 Cmd 가 inspect 에 두 군데 나올 수 있습니다. 이 부분도 확인해보셔도 좋긴 하고요. 기본적으로는 ENTRYPOINT
와 CMD
는 서로 상호작용하는데, CMD
는 ENTRYPOINT
로 전달될 기본 인자를 제공합니다.
감사합니다.
답변 1