티스토리 뷰

이번 글에서는 도커 컨테이너의 엔터리포인트와 커맨드에 대해 알아보고자 한다. 엔트리포인트와 커맨드의 개념이 Dockerfile 과 도커 명령어에서 사용될 수 있다.

엔트리포인트 (Entrypoint)

도커 컨테이너가 실행될 때 하나의 프로세스로서 실행되게 된다.

이때 고정적으로 실행되는 스크립트 혹은 명령어를 말한다.

이는 생략할 수 있으며, 생략할 경우 커맨드에 지정된 명령어로 수행된다.

 

엔트리포인트를 지정할 경우, 다음과 같은 형식으로 엔트리포인트가 prefix 처럼 실행되고, 그 뒤에 커맨드가 실행된다.

[Entrypoint] [Command]

 

커맨드 (Command)

도커 컨테이너가 실행할 때 수행할 명령어 혹은 엔트리포인트에 지정된 명령어에 대한 인자 값으로 사용된다.

 

엔트리포인트와 커맨드는 Dockerfile 내에서 구문을 통해 사용되는데, 다음과 같이 구문을 작성할 수 있다.

# 실제 커맨드를 실행하기 전에 docker-entrypoint.sh 를 먼저 실행한다.
ENTRYPOINT ["docker-entrypoint.sh"]

# 엔트리포인트가 실행된 후 node 라는 명령어가 실행된다.
# 커맨드는 배열 형태로 작성할 수 있고,
# 배열 안에 여러 문자열을 배치할 경우 실제로는 배열의 요소 사이에 공백이 들어가 실행되게 된다.
CMD ["node"]

# 위 구문을 실행할 경우, 다음 명령이 최종적으로 실행된다.
$ doker-entrypoint.sh
$ node

 

또한 도커 명령어를 통해 엔트리포인트와 커맨드를 전달할 수 있는데, 이미지에 지정된 엔트리포인트와 커맨드를 오버라이드하는 형태로 진행할 수 있다.

# entrypoint를 sh로 변경하여 sh shell 을 실행하도록 변경할 수 있다.
docker run --entrypoint sh ubuntu:focal

# entrypoint 를 echo 로 변경하여 echo 명령을 실행하도록 변경할 수 있다.
docker run --entrypoint echo ubuntu:focal hello world

 

실습

실제 도커 컨테이너를 생성하여 실습해 보자. 먼저, 다음 명령어를 입력하여 새로운 컨테이너를 실행해 보자.

docker run ubuntu:focal

 

컨테이너 전체 목록을 살펴보면,

docker ps -a

 

이미지가 생성되고 자동으로 종료된 것을 확인할 수 있다.

 

이 상태에서 다음 명령어를 통해 컨테이너의 설정 값을 보면,

docker inspect [NAME]

 

Cmd (Command) 가 "bash" 이고 Entrypoint 가 null 인 것을 확인할 수 있다.

 

만약 엔트리포인트로 sh 를 다음과 같이 설정하면,

docker run --entrypoint sh ubuntu:focal

 

실행하고 전체 컨테이너 목록을 조회했을 때,

docker ps -a

 

COMMAND 에 적힌 바와 같이 "sh" 로 설정된 것을 확인할 수 있다.

 

실제 shell 이 정상 동작하는지 확인하기 위해 -i 와 -t 옵션을 주어 작동시키면,

docker run --entrypoint sh -i -t ubuntu:focal

 

다음과 같이 컨테이너의 shell 로 자동 접속되는 것을 확인할 수 있다.

 

이번에는 sh 대신 echo 명령어를 전달해 본다. 다음과 같이 문자열이 출력되는 것을 확인할 수 있다.

 

이 상태에서 해당 컨테이너를 inspect 로 들여다 보면,

docker inspect [NAME]

 

Cmd와 EntryPoint가 적용된 것을 볼 수 있다.

 

 


이렇게 Entrypoint 와 Command 에 대해 알아보았다. 도커 컨테이너 실행 시에 엔트리포인트와 커맨드 모두 변경 가능하다. 이미지를 커스터마이징하여 사용할 때 두 값이 어떻게 설정되어 있는지 확인하는 것이 좋다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함