수복의 프로그래밍 여행기
article thumbnail

방법

 

의미는 Docker 컨테이너가 실행될 때 기본적으로 실행되는 명령어를 지정하는 지시문입니다.

 

ENTRYPOINT [ "실행할_명령어", "기본_옵션" ]

 

이전에 저는 sleep 이라고 명령어를 사용하고 옵션으로 500 이라는 값을 입력하여 500초동안 실행하고 종료되게 만들었습니다.

 

ENTRYPOINT [ "sleep", "500" ]

 

 

다른 예시

 

Dockerfile 안에 아래와 같이 입력해 봅니다.

FROM ubuntu
ENTRYPOINT [ "echo", "Hello, Docker!" ]

 

 

해당 의미는 ubuntu 이미지를 생성하고 컨테이너를 생성 및 실행되자 마자, Hello, Docker! 가 실행이 되도록 하는 것입니다.

 

확인을 위해 Dockerfile을 실행하면 아래와 같이 이미지가 생성된 것을 알 수 있습니다.

 

 

해당 이미지로 컨테이너를 생성 및 실행합니다.

 

하지만, 실제로 실행된 것을 확인할 수가 없습니다.

 

 

생성되자 마자 종료가 되었기 때문입니다.

 

그래서 확인 방법은 해당 container의 로그를 확인하면 볼 수 있습니다.

 

docker logs [Container ID]

 

해당 로그가 찍힌 것을 알 수 있습니다.

 

ENTRYPOINT 응용

위와 같이 명령어를 사용하는데 하나 이상의 명령어를 사용할 수 있습니다.

 

특히, 단순한 명령어가 아닌 복잡하고 조건이 들어간 명령어로도 가능한데 아래와 같이 비교할 수 있습니다.

 

사용 경우   bash -c 필요 여부 예제
단순 명령 실행 ❌ 불필요 ENTRYPOINT [ "echo", "Hello" ]
여러 개의 명령 실행  ✅ 필요 ENTRYPOINT [ "/bin/bash", "-c", "echo A && echo B" ]
환경 변수 활용  ✅ 필요 ENTRYPOINT [ "/bin/bash", "-c", "echo $USER" ]
파이프  ✅ 필요 (` ), 리디렉션(>), 와일드카드(*`) 사용

 

명령어를 사용하는 방법은 아래와 같습니다.

ENTRYPOINT [ "/bin/bash", "-c", "echo Hello" ]

 

해당 의미는 컨테이너 내부에서 bash 쉘을 실행합니다.

 

-c 옵션을 사용하면 bash 뒤에 오는 문자열을 명령어로 실행합니다.

 

결국 echo Hello 를 실행하고 종료하게 됩니다.

 

ENTRYPOINT [ "/bin/bash", "-c", "echo Hello && echo World" ]

 

이것은 && 연산자를 사용하게 될 경우 bash 를 쓰게 됩니다.

반응형
profile

수복의 프로그래밍 여행기

@컴수복

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!