Dockerfile: CMD와 ENTRYPOINT
발행: (2025년 12월 14일 오전 01:31 GMT+9)
2 min read
원문: Dev.to
Source: Dev.to
Ubuntu 이미지의 기본 CMD
공식 Ubuntu 이미지에는 기본 명령이 정의되어 있습니다:
CMD ["/bin/bash"]
컨테이너를 실행하면서 인수를 제공하면, 해당 인수가 기본 CMD를 대체합니다.
docker run --rm --name cmd ubuntu:latest ls /home
docker run --rm --name cmd ubuntu:latest date
예시 출력
# /home/ubuntu 내용 목록
docker run --rm --name cmd ubuntu:latest ls -l /home/ubuntu
total 0
# 현재 날짜 표시
docker run --rm --name cmd ubuntu:latest date
Sat Dec 13 16:22:53 UTC 2025
ENTRYPOINT가 있는 이미지 만들기
아래는 ENTRYPOINT 스크립트를 설정하고 CMD를 통해 기본 인수를 제공하는 간단한 Dockerfile입니다.
FROM ubuntu:latest
WORKDIR /app
COPY script.sh .
RUN ["chmod", "+x", "script.sh"]
ENTRYPOINT ["/app/script.sh"]
CMD ["world"]
script.sh
#!/bin/bash
echo "Hello $1"
스크립트는 하나의 인수를 기대합니다. 실행 시 인수가 제공되지 않으면 CMD(world)의 값이 사용됩니다.
이미지 실행하기
기본 인수 사용
docker run --rm --name entrypoint entrypoint:1.0.0
# Output:
# Hello world
인수 재정의
docker run --rm --name entrypoint entrypoint:1.0.0 december
# Output:
# Hello december
핵심 정리
CMD명령은 컨테이너 실행 시 인수를 제공함으로써 언제든지 재정의할 수 있습니다.ENTRYPOINT자체는 런타임에 재정의할 수 없지만, 다른CMD를 지정하거나docker run에 직접 인수를 전달하여 전달되는 인수를 변경할 수 있습니다.- 사용 목적에 따라
ENTRYPOINT와CMD를 선택하세요: 고정 실행 파일에는ENTRYPOINT를, 기본 인수나 대체 명령에는CMD를 사용합니다.