일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linux
- tucker의 go 언어 프로그래밍
- golang
- kotlin
- 공부
- 기록으로 실력을 쌓자
- Spring
- kotlin coroutine
- kotlin querydsl
- mysql 튜닝
- AI
- go
- docker
- 오블완
- 정보처리기사실기 기출문제
- APM
- Pinpoint
- Elasticsearch
- CKA
- CKA 기출문제
- 티스토리챌린지
- AWS EKS
- minikube
- PETERICA
- Kubernetes
- aws
- 정보처리기사 실기 기출문제
- Java
- CloudWatch
- 코틀린 코루틴의 정석
- Today
- Total
피터의 개발이야기
[Docker] Docker ENTRYPOINT와 CMD의 차이점 본문
ㅁ 들어가며
ㅇ Docker 컨테이너를 구성할 때 자주 사용되는 중요한 명령어인 ENTRYPOINT와 CMD는 비슷해 보이지만 중요한 차이점이 있다. 이 글에서는 ENTRYPOINT와 CMD의 차이점에 대해 정리해 보았다.
ㅁ ENTRYPOINT란?
FROM ubuntu:20.04
ENTRYPOINT ["echo", "Hello from ENTRYPOINT"]
ㅇ Dockerfile를 작성하고 빌드한다.
# 실행
$ docker run command-test:latest
Hello from ENTRYPOINT
# Param 추가
$ docker run command-test:latest addparam peterica
Hello from ENTRYPOINT addparam peterica
ㅇ ENTRYPOINT에 지정된 명령이 항상 실행되며, 추가 인자는 ENTRYPOINT 명령 뒤에 붙는다.
ㅇ ENTRYPOINT는 컨테이너가 시작될 때 실행되는 기본 명령을 지정한다.
ㅇ 이는 컨테이너가 실행될 때 항상 실행되어야 하는 명령이나 스크립트를 설정하는 데 사용된다.
ㅇ 주요 특징
ㄴ 컨테이너의 주요 실행 프로세스를 정의한다.
ㄴ Dockerfile에서 한 번만 사용할 수 있다.
ㄴ docker run 명령으로 재정의하기 어렵다.
ㅁ CMD란?
FROM ubuntu:20.04
CMD ["echo", "Hello from CMD"]
ㅇ Dockerfile 생성
# 실행
$ docker run command-test
Hello from CMD
$ docker run command-test echo "Override CMD Test"
Override CMD Test
ㅇ CMD는 컨테이너가 시작될 때 실행될 기본 명령이나 매개변수를 제공한다.
ㅇ ENTRYPOINT와 달리 docker run 명령으로 쉽게 재정의할 수 있다.
ㅇ 주요 특징
ㄴ 기본 명령이나 ENTRYPOINT에 대한 기본 매개변수를 제공한다.
ㄴ docker run 명령으로 쉽게 재정의할 수 있다.
ㅁ ENTRYPOINT와 CMD의 주요 차이점
FROM ubuntu:20.04
ENTRYPOINT ["echo", "Hello"]
CMD ["World"]
$ docker run command-test
Hello World
$ docker run command-test Peterica
Hello Peterica
ㅇ ENTRYPOINT는 항상 실행되고, CMD는 기본값을 제공하거나 재정의될 수 있다.
ENTRYPOINT | CMD | |
목적성 | 컨테이너의 주요 실행 명령을 정의 | 기본 매개변수나 명령을 제공 |
재정의 가능성 | docker run 명령으로 재정의하기 어렵다 | docker run 명령으로 쉽게 재정의할 수 있다 |
사용 방식 | 컨테이너가 실행될 때 반드시 실행되어야 하는 명령을 지정한다 | ENTRYPOINT에 대한 기본 매개변수를 제공하거나, ENTRYPOINT가 지정되지 않았을 때 실행될 기본 명령을 제공 |
ㅁ 마무리
ENTRYPOINT와 CMD를 사용하면서 Docker 컨테이너의 시작 동작을 정의하는 차이를 예제로 정리해 보았다. ENTRYPOINT는 컨테이너의 주요 실행 명령을 정의하고, CMD는 기본 매개변수나 명령을 제공합니다. 두 명령어를 적절히 조합하여 사용하면 유연하고 강력한 Docker 이미지를 만들 수 있다.
ㅁ 함께 보면 좋은 사이트
'DevOps > Docker' 카테고리의 다른 글
[Docker] Docker 데몬 로그 확인 방법, docker 먹통 시 해결 방법 (0) | 2025.03.09 |
---|---|
[Docker] 컨테이너를 새로운 태그로 지정하여 Docker Hub에 푸시하는 과정 (0) | 2025.03.04 |
[Docker] Docker 컨테이너에서 JAR 파일만 수정하고 다시 실행하는 방법 (0) | 2025.03.02 |
[Docker] Docker Compose 볼륨을 읽기 전용(read-only)으로 설정하기 (2) | 2025.02.28 |
[Docker] Docker System Prune: 도커 시스템 정리 도구, 용량 부족 해결 (0) | 2025.02.13 |