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/
비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의
현재 평점 4.9점 수강생 14,470명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를
www.inflearn.com
'강의 실습 > 비전공자도 이해할 수 있는 Docker 입문 실전' 카테고리의 다른 글
| EXPOSE : 컨테이너 내부에서 사용 중인 포트를 문서화하기 (0) | 2026.05.18 |
|---|---|
| WORKDIR : 작업 디렉토리를 지정 (0) | 2026.05.17 |
| [실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기 (0) | 2026.05.15 |
| ENTRYPOINT : 컨테이너가 시작할 때 실행되는 명령어 (0) | 2026.05.15 |
| COPY 파일 복사(이동) (0) | 2026.05.14 |
댓글