수복의 프로그래밍 여행기
article thumbnail
Published 2025. 2. 26. 21:55
[Docker] Dockerfile 과 RUN 명령어 Docker

방법

의미는 이미지 생성 과정에서 실행되는 명령어입니다.

 

이는 컨테이너 내부에서 특정 작업(패키지 설치, 파일 복사 등)을 실행하고 결과를 이미지에 반영합니다.

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" ]
실행 중지 후 재시작 영향 없음 있음 (컨테이너 실행할 때마다 실행됨)

 

반응형
profile

수복의 프로그래밍 여행기

@컴수복

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!