inblog logo
|
DailyCoding
    Docker

    5. Dockerfile (CMD vs ENTRYPOINT)

    박은서's avatar
    박은서
    May 01, 2026
    5. Dockerfile (CMD vs ENTRYPOINT)
    Contents
    📄 CMD vs ENTRYPOINT 정리 노트1️⃣ 한 줄 핵심 차이2️⃣ 개념 비교3️⃣ 동작 방식 이해 (핵심 ⭐)4️⃣ CMD + ENTRYPOINT 같이 쓰는 경우 (중요 ⭐⭐⭐)5️⃣ 비유로 이해하기6️⃣ 언제 무엇을 쓰나?7️⃣ 실행 구조 요약8️⃣ 실수 포인트 (중요 ⚠️)9️⃣ 초간단 기억법🔟 한 줄 정리

    📄 CMD vs ENTRYPOINT 정리 노트

    1️⃣ 한 줄 핵심 차이

    👉 CMD = 기본값 (바꿀 수 있음)
    👉 ENTRYPOINT = 강제 실행 (잘 안 바뀜)

    2️⃣ 개념 비교

    구분
    CMD
    ENTRYPOINT
    역할
    기본 실행 명령
    항상 실행되는 고정 명령
    변경 가능 여부
    쉽게 덮어쓰기 가능
    덮어쓰기 어려움
    사용 목적
    기본값 제공
    프로그램 고정 실행
    우선순위
    낮음
    높음

    3️⃣ 동작 방식 이해 (핵심 ⭐)

    📌 CMD만 있을 때

    CMD ["python", "app.py"]
    👉 실행:
    docker run my-image
    → python app.py 실행됨
    👉 덮어쓰기 가능:
    docker run my-image ls
    → ls 실행됨 (CMD 무시됨)

    📌 ENTRYPOINT만 있을 때

    ENTRYPOINT ["python", "app.py"]
    👉 실행:
    docker run my-image
    → 무조건 python app.py
    👉 덮어쓰기 시도:
    docker run my-image ls
    → 실제 실행:
    python app.py ls
    💡 즉, 명령이 추가됨 (완전히 바뀌지 않음)

    4️⃣ CMD + ENTRYPOINT 같이 쓰는 경우 (중요 ⭐⭐⭐)

    👉 가장 실무적인 패턴
    ENTRYPOINT ["python", "app.py"] CMD ["--help"]
    👉 실행:
    docker run my-image
    → 실행:
    python app.py --help
    👉 값 변경:
    docker run my-image --version
    → 실행:
    python app.py --version
    💡 구조:
    ENTRYPOINT = 고정 실행
    CMD = 기본 옵션

    5️⃣ 비유로 이해하기

    개념
    비유
    ENTRYPOINT
    자동 실행되는 프로그램
    CMD
    기본 옵션 (설정값)
    💡 예:
    • ENTRYPOINT = “게임 실행”
    • CMD = “난이도: 쉬움”

    6️⃣ 언제 무엇을 쓰나?

    ✅ CMD 쓰는 경우

    • 기본 실행만 정해두고 싶을 때
    • 사용자가 자유롭게 명령 바꿀 수 있게 할 때
    👉 예: 테스트용 컨테이너

    ✅ ENTRYPOINT 쓰는 경우

    • 특정 프로그램을 반드시 실행해야 할 때
    • 컨테이너를 “하나의 앱처럼” 만들 때
    👉 예: 웹 서버, CLI 도구

    ✅ 같이 쓰는 경우 (추천 ⭐)

    • 실행은 고정
    • 옵션만 변경 가능
    👉 가장 많이 쓰는 패턴

    7️⃣ 실행 구조 요약

    ENTRYPOINT + CMD = 최종 실행 명령

    8️⃣ 실수 포인트 (중요 ⚠️)

    ❌ CMD만 쓰고 덮어쓰기 문제 발생

    → 예상치 못한 명령 실행됨

    ❌ ENTRYPOINT만 써서 유연성 부족

    → 디버깅 어려움

    9️⃣ 초간단 기억법

    • CMD = 기본값
    • ENTRYPOINT = 고정값
    • 같이 쓰면 = “고정 + 옵션”

    🔟 한 줄 정리

    👉 ENTRYPOINT는 실행 자체를 고정하고, CMD는 그 실행의 기본 옵션을 제공한다
    Share article
    Contents
    📄 CMD vs ENTRYPOINT 정리 노트1️⃣ 한 줄 핵심 차이2️⃣ 개념 비교3️⃣ 동작 방식 이해 (핵심 ⭐)4️⃣ CMD + ENTRYPOINT 같이 쓰는 경우 (중요 ⭐⭐⭐)5️⃣ 비유로 이해하기6️⃣ 언제 무엇을 쓰나?7️⃣ 실행 구조 요약8️⃣ 실수 포인트 (중요 ⚠️)9️⃣ 초간단 기억법🔟 한 줄 정리

    DailyCoding

    RSS·Powered by Inblog