인프런 커뮤니티 질문&답변

백근우(qor0923)님의 프로필 이미지

작성한 질문수

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]

Dockerfile 작성을 위한 주요 명령 익히기4

CMD, ENTRYPOINT 관련 문의입니다..

해결된 질문

작성

·

220

0

안녕하세요 강사님.

Dockerfile 작성을 위한 주요명령 익히기4 의 10분 10초 처럼 Cmd의 값이 뒤에 붙지않고 null로 뜨는데,,

로그를 봤을때는 hello /bin/sh hi
로 Cmd 인자가 정상적으로 붙습니다.

Dockerfile 은

정상적으로 작성했습니다.

혹시 제가 놓친부분이 또 있을까요? 몇번 강의돌려도 null로 뜨는건 똑같아서..

답변 1

1

안녕하세요. 답변도우미입니다.

제가 정확히 이해한 것인지 조금 걱정이 되는데요. 기본적으로는 Dockerfile의 내용을 보여주셨는데요. 해당 Dockerfile 에서는 ENTRYPOINT가 설정된 것을 볼 수 있습니다.

이 경우, ENTRYPOINT["/bin/echo", "hello"]가 명시되어 있으므로, 컨테이너가 시작될 때마다 echo hello 명령이 실행되도록 설정되어 있습니다.

그리고, Dockerfile 에서 보여주신대로 ENTRYPOINT만 정의되어 있고, CMD가 정의되어 있지 않아서, docker inspect에서 Cmdnull로 나올 수 있습니다.

이런 경우, 컨테이너를 실행할 때 docker run 명령어 뒤에 추가적인 인자를 제공하지 않으면, ENTRYPOINT에 명시된 명령만 실행되고, 추가적인 인자를 제공하면, 해당 인자가 ENTRYPOINT 이후에 붙어서 인자까지 넣어져 실행됩니다.

그래서 기본적으로는 설정하신대로 된 것으로 이해가 되긴 하거든요... 또한 Cmd 가 inspect 에 두 군데 나올 수 있습니다. 이 부분도 확인해보셔도 좋긴 하고요. 기본적으로는 ENTRYPOINTCMD는 서로 상호작용하는데, CMDENTRYPOINT로 전달될 기본 인자를 제공합니다.

감사합니다.

감사합니다. 이해했습니다.!