본문 바로가기
IT&DEV - IT & 개발/Backend

Docker 환경에서 Python Flask 프로젝트 실행 방법

by Hoft 2025. 10. 15.
728x90
반응형

Python Flask 웹 프로젝트를 Docker 환경에서 실행하는 방법.


1. 프로젝트 디렉토리 준비

먼저 Flask 앱용 폴더를 만듭니다.

mkdir flask-docker-app
cd flask-docker-app

2. Flask 앱 파일 작성

아래는 가장 단순한 예시입니다. app.py 파일을 만듭니다:

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Dockerized Flask!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
  • host='0.0.0.0'로 지정해야 Docker 컨테이너 외부에서 접근이 가능합니다.

3. 의존성 명시: requirements.txt

아래와 같이 requirements.txt 파일을 만듭니다:

flask
  • 추가 패키지가 있으면 여기에 적어 주세요.

4. Dockerfile 작성

Docker에서 앱을 실행하기 위한 파일입니다.

# Dockerfile
FROM python:3.10
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
  • FROM python:3.10: 원하는 버전으로 변경 가능.
  • WORKDIR /app: 작업 디렉토리 지정.
  • COPY . .: 코드 전체를 컨테이너에 복사.
  • CMD: 컨테이너가 시작될 때 실행할 명령어.

5. 이미지 빌드

아래 명령어로 이미지를 빌드합니다:

docker build -t flask-docker-app .
  • -t 옵션은 이미지에 태그를 붙임. 원하는 이름을 사용하세요.

6. 컨테이너 실행

아래처럼 실행합니다:

docker run -p 8080:5000 flask-docker-app
  • -p 8080:5000: 호스트(로컬) 8080번 포트가 컨테이너 5000번 포트와 연결됩니다.
  • 접속은 http://localhost:8080에서 가능합니다.

7. 실습 및 확인

브라우저에서 http://localhost:8080으로 접속하면 'Hello, Dockerized Flask!'가 보입니다.


8. 추가: Docker Compose 사용 (옵션)

여러 서비스가 필요할 때는 docker-compose.yml로 관리할 수 있습니다.

version: '3.8'
services:
  web:
    build: .
    ports:
      - "8080:5000"

실행은 다음과 같습니다:

docker compose up --build

요약 & 확인

  • Flask 코드는 반드시 host='0.0.0.0'으로 실행해야 외부 접근 가능
  • requirements.txt에 필요한 파이썬 패키지를 명시
  • Dockerfile로 이미지를 만들고 run 명령으로 컨테이너를 띄움

 

728x90
반응형

댓글