Docker 실습 정리

랫서·2025년 10월 15일

MLOps

목록 보기
6/11

1. Hello Docker World

도커의 기본 개념부터 확인하기 위한 가장 단순한 실습이다.
Dockerfile 작성 → 이미지 빌드 → 실행(run) 의 전체 과정을 직접 경험해보자.


1) Dockerfile 작성

Dockerfile

FROM python:3.8-slim
WORKDIR /app
COPY main.py /app
CMD ["python", "./main.py"]

main.py

import sys
print("Hello, Docker world")
print(sys.version_info)

2) 이미지 빌드

docker build -t hello-docker-world .

3) 이미지 확인

docker images

4) 컨테이너 실행

docker run hello-docker-world

결과 예시

Hello, Docker world
sys.version_info(major=3, minor=8, micro=18, releaselevel='final', serial=0)

5) 이미지 삭제

docker ps     # 실행중인 컨테이너 확인
docker rmi [image id] -f

2. Docker Hub 사용해보기

Docker Hub에서 이미지를 다운받아 실행해보자.


1) 이미지 검색

docker search nginx

2) 이미지 다운로드

docker pull nginx:latest

3) 컨테이너 실행

docker run -it -d -p 8001:80 --name nginxserver nginx:latest
  • -d : 백그라운드 실행(detached)
  • -p : 포트 포워딩 (로컬:컨테이너)
  • --name : 컨테이너 이름 지정

4) 실행 확인

curl localhost:8001

또는 브라우저에서\
➡️ http://localhost:8001 접속


5) 재시작

docker start nginxserver

컨테이너가 이미 생성되어 있다면 run 대신 start로 다시 실행 가능


6) 내용 수정

방법 ① 컨테이너 내부 진입

docker exec -it nginxserver bash

→ 리눅스 쉘 환경에서 직접 파일 수정 가능

방법 ② 로컬 파일 교체

docker cp new.html nginxserver:/usr/share/nginx/html/index.html

3. Scikit-Learn 모델 실습

이번엔 Python 머신러닝 코드를 Docker로 감싸서 실행해본다.


1) 파일 구성

Dockerfile

FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY model_learn.py .
CMD ["python", "model_learn.py"]

requirements.txt

scikit-learn
pandas
numpy

model_learn.py

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

X, y = load_iris(return_X_y=True)
model = LogisticRegression(max_iter=200)
model.fit(X, y)
print("Model trained successfully!")
print("Accuracy:", model.score(X, y))

2) 도커 빌드

docker build -t scikitlearn_modellearn .

3) 도커 실행

docker run --name mldevelopment scikitlearn_modellearn

4) Docker Hub 업로드

docker tag scikitlearn_modellearn:latest oriori88/scikitlearn_modellearn:latest
docker push oriori88/scikitlearn_modellearn:latest

5) Docker Hub에서 이미지 받아 실행

docker pull oriori88/scikitlearn_modellearn:latest
docker run --name mldevelopment oriori88/scikitlearn_modellearn:latest

4. 정리하며

단계 핵심 명령어 의미


빌드 docker build -t <이름> . Dockerfile 기반 이미지 생성
실행 docker run <이미지> 컨테이너 실행
상태확인 docker ps -a 컨테이너 상태 조회
재시작 docker start <이름> 기존 컨테이너 재실행
로그확인 docker logs <이름> 실행 결과 출력 확인
이미지삭제 docker rmi <id> 이미지 제거


5. 배운 점

  • Dockerfile → build → image → run 흐름이 기본 구조임을 이해했다.
  • 컨테이너는 독립된 실행 환경이며, run은 한 번성 실행임을 확인했다.
  • Docker Hub를 통해 이미지 공유와 배포가 가능함을 실습했다.
  • ML 모델이나 웹서버 모두 컨테이너 단위로 관리할 수 있음을 체감했다.
profile
개발자로 다시 성장하고 싶은 사람입니다.

0개의 댓글