티스토리 뷰

카테고리 없음

Docker 생성 및 실행 예제

시크시크시크 2025. 6. 12. 11:28

윈도우즈 wsl ubuntu 20.04.6 LTS

전체 예시 시나리오

(예시: 파이썬 Flask 웹애플리케이션 Docker화 하기)

① 작업 폴더 만들기

mkdir my-flask-app
cd my-flask-app

② vi(또는 nano)로 소스코드 작성

1. Flask 앱 코딩

vi app.py

i (입력모드로 전환), 아래 코드 붙여넣기:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Docker World!'

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000)

esc:wq (저장 및 종료)


2. requirements.txt 작성

vi requirements.txt

내용:

flask

(esc, :wq)


3. Dockerfile 작성

vi Dockerfile

내용 입력(아래 복사해서 붙여도 됨):

FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

(esc, :wq)


③ 도커 이미지 빌드

docker build -t my-flask-app .

점 하나(.)는 '현 위치에 Dockerfile 있음'의 뜻


④ 컨테이너 실행

docker run -d -p 5000:5000 --name flask-sample my-flask-app
  • (-d: 백그라운드, -p: 포트연결, --name: 컨테이너이름)

⑤ 결과 확인

Windows에서 웹브라우저 열고 http://localhost:5000 접속 → 화면에 Hello, Docker World! 표시!

 


⑥ 컨테이너, 이미지 관리

  • 확인: docker ps -a
  • 멈추기: docker stop flask-sample
  • 삭제(컨테이너): docker rm flask-sample
  • 삭제(이미지): docker rmi my-flask-app

전체 폴더 구조:

(WSL Ubuntu에서 ls로 확인 가능)

my-flask-app/
 ├── app.py
 ├── requirements.txt
 └── Dockerfile

(부연) vi 명령어 기본

  • i : 입력모드
  • ESC : 입력모드 종료
  • :wq : 저장하고 종료(write quit)
  • :q! : 저장 안 하고 강제 종료

nano로 작업할 수도 있습니다:

nano app.py

(쓰기, Ctrl+O / 나가기 Ctrl+X)


[정리]

윈도우즈 → Ubuntu(WSL) 진입 →

  1. 폴더 만들고 진입
  2. vi로 파일(코드, requirements, Dockerfile) 작성
  3. 도커 빌드
  4. 컨테이너 실행
  5. 브라우저로 동작 확인!