방법
의미는 이미지 생성 과정에서 실행되는 명령어입니다.
이는 컨테이너 내부에서 특정 작업(패키지 설치, 파일 복사 등)을 실행하고 결과를 이미지에 반영합니다.
RUN [명령어]
우분트를 설치하고 이미지 생성과정에서 apt-get update 후 curl을 설치할 경우
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl

실행하면 이미지가 생성되는 과정에서 환경이 설정됩니다.
설치가 정상적으로 되었는지 확인하기 위해 버전 및 curl 명령어를 실행해 봅니다.
curl --version
which curl

확인이 되는 것을 알 수 있습니다.
따라서, 위에서 만든 이미지는 ubuntu 와 curl 이 설치된 이미지가 됩니다.
사실 위와 같이 dockerfile 을 실행하면, 설치가 끝나자 마자 종료가 되기 때문에 ENDPOINT 명령어를 추가합니다.
ENTRYPOINT [ "sleep","500" ]
실행되는 명령어 RUN 과 ENTRYPOINT 차이
Run 명령어를 사용한다는 것은 이미지가 생성될 때 무언가 실행하여 설치하는 것을 말하고
ENTRYPOINT 명령어를 사용한다는 것은 생성된 이미지를 가지고 컨테이너를 생성한 직후 명령어를 실행할 때 사용합니다.
| 명령어 | 실행 시점 | 용도 |
| RUN | 이미지 빌드 시 실행 | 패키지 설치, 파일 복사 등 |
| ENTRYPOINT | 컨테이너 실행 시 실행 | 컨테이너가 실행될 때 기본적으로 실행할 명령어 |
추가로 ENTRYPOINT는 컨테이너가 실행될 때마다 항상 실행됩니다.
그래서 사용자가 패키지 설치, 파일 복사 등이 필요하면 RUN 명령어를 사용하고
컨테이너 실행 시 무조건 실행할 필요가 있다면 ENTRYPOINT를 사용합니다.
목적에 따라 차이점이 명확한 RUN 과 ENTRYPOINT
| 목적 | RUN | ENTRYPOINT |
| 패키지 설치 | ✅ RUN apt-get install -y curl | ❌ |
| 파일 다운로드 | ✅ RUN curl -O https://example.com/file | ❌ |
| 기본 실행 명령 설정 | ❌ | ✅ ENTRYPOINT [ "python", "app.py" ] |
| 실행 중지 후 재시작 영향 | 없음 | 있음 (컨테이너 실행할 때마다 실행됨) |
반응형
'Docker' 카테고리의 다른 글
| [Docker] Docker Compose 사용 및 Dockerfile과 비교하기 (0) | 2025.03.02 |
|---|---|
| [Docker] Dockerfile과 WORKDIR 명령어 (0) | 2025.02.26 |
| [Docker] Dockerfile 과 ENTRYPOINT 명령어 (0) | 2025.02.26 |
| [Docker] Dockerfile 그리고 COPY 명령어 (0) | 2025.02.26 |
| [Docker] Dockerfile 을 만들기 그리고 FROM 명령어 (0) | 2025.02.21 |
