본문 바로가기
강의 실습/비전공자도 이해할 수 있는 Docker 입문 실전

RUN : 이미지를 생성하는 과정에서 사용할 명령문 실행

by jint 2026. 5. 16.

1. RUN
RUN 명령문 : 이미지 생성 과정에서 사용할 명령문 실행

 

# 예시
RUN npm install



2. RUN vs ENTRYPOINT
RUN : '이미지 생성 과정'에서 필요한 명령어를 실행시킬 때 사용
ENTRYPOINT : 생성된 이미지를 기반으로 '컨테이너 생성 직후'에 명령어를 실행시킬 때 사용


3. 예제
미니 컴퓨터 환경이 ubuntu로 구성되고 git이 설치되어 있도록 Dockerfile 을 설정한다.
(Docker Hub 에 ubuntu + git 이 깔린 이미지가 없다고 가정)

1) Dockerfile 작성
- docker-practice/Dockerfile

FROM ubuntu

RUN apt update && apt install -y git

ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]


2) 이미지 빌드 및 컨테이너 실행
- Windows PowerShell

PS C:\Users\admin> cd docker-practice
PS C:\Users\admin\docker-practice> docker build -t my-server .
[+] Building 23.3s (7/7) FINISHED                                                                                                                                                           docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                                                                                                                        0.0s
 => => transferring dockerfile: 135B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                                                                                                                            1.4s
 => [auth] library/ubuntu:pull token for registry-1.docker.io                                                                                                                                               0.0s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
 => CACHED [1/2] FROM docker.io/library/ubuntu:latest@sha256:f3d28607ddd78734bb7f71f117f3c6706c666b8b76cbff7c9ff6e5718d46ff64                                                                               0.0s
 => => resolve docker.io/library/ubuntu:latest@sha256:f3d28607ddd78734bb7f71f117f3c6706c666b8b76cbff7c9ff6e5718d46ff64                                                                                      0.0s
 => [2/2] RUN apt update && apt install -y git                                                                                                                                                             17.1s
 => exporting to image                                                                                                                                                                                      4.6s
 => => exporting layers                                                                                                                                                                                     3.6s
 => => exporting manifest sha256:c166587577d285f727836f0fd283dacd0fbdfd315e1c1dae302f7a95669c3a6a                                                                                                           0.0s
 => => exporting config sha256:c64caafbf73becee487dec2b73b4762cb4884a20367f55d774fbc8849a8d82ff                                                                                                             0.0s
 => => exporting attestation manifest sha256:a4dbab1f5fa133f0e640d133bc6ec80ea8989f2f65b54bce3a967052528c169b                                                                                               0.1s
 => => exporting manifest list sha256:cb8d00dbe5f5bc6bb225772eb484f0210589d70b52e4a3e0412bb185819340e3                                                                                                      0.0s
 => => naming to docker.io/library/my-server:latest                                                                                                                                                         0.0s
 => => unpacking to docker.io/library/my-server:latest                                                                                                                                                      0.8s

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/yaooiv5plwwufd3y2ox7wawwj
PS C:\Users\admin\docker-practice> docker image ls
                                                                                                                                                                                             i Info →   U  In Use
IMAGE                    ID             DISK USAGE   CONTENT SIZE   EXTRA
my-jdk17-server:beta     18e650b59b52        682MB          212MB
my-jdk17-server:latest   09a2803e5d8e        682MB          212MB    U
my-node-server:latest    9a1e49574c81       1.77GB          442MB    U
my-server:latest         cb8d00dbe5f5        359MB          101MB
PS C:\Users\admin\docker-practice> docker run -d my-server
11b4c5adcc089827e9fd38dcc2ab065e75bfbfe8fbb08ada969b7fc71c1385af
PS C:\Users\admin\docker-practice> docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS     NAMES
11b4c5adcc08   my-server   "/bin/bash -c 'sleep…"   10 seconds ago   Up 10 seconds             awesome_lalande
PS C:\Users\admin\docker-practice> docker exec -it 11b4 bash
root@11b4c5adcc08:/# git -v # 컨테이너 내에 git이 잘 설치됐는지 확인
git version 2.53.0
root@11b4c5adcc08:/# exit
exit

What's next:
    Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug 11b4
    Learn more at https://docs.docker.com/go/debug-cli/



참고링크 : https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84?cid=334085

 

비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의

현재 평점 4.9점 수강생 14,470명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를

www.inflearn.com

댓글