[파이썬] Flask와 Docker 연동

Flask는 파이썬을 기반으로한 웹 프레임워크로, Docker는 컨테이너 기반의 가상화 플랫폼입니다. Flask와 Docker를 연동하여 애플리케이션을 개발하고 배포하는 것은 매우 효과적이고 간단한 방법입니다.

Flask 애플리케이션 작성

먼저 Flask 애플리케이션을 작성해야 합니다. 간단한 예제를 통해 Flask 애플리케이션을 작성해보겠습니다.

from flask import Flask

app = Flask(__name__)

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

if __name__ == '__main__':
    app.run()

애플리케이션은 ‘Hello, World!’ 라는 메시지를 반환하는 간단한 라우트를 갖고 있습니다. 이제 Docker를 사용하여 이 애플리케이션을 배포해 보겠습니다.

Docker 이미지 작성

Docker 이미지는 애플리케이션과 그에 필요한 환경을 포함하는 실행 가능한 패키지입니다. Dockerfile을 작성하여 필요한 패키지와 설정을 정의합니다.

FROM python:3.9
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]

이 파일은 Python 3.9를 기반으로 하는 Docker 이미지를 정의하고, 애플리케이션의 의존성 패키지를 설치한 뒤 애플리케이션 코드를 복사하고, 포트 5000을 노출시켜 애플리케이션을 실행합니다.

Docker 이미지 빌드 및 실행

이제 Docker 이미지를 빌드하고 실행해 보겠습니다. Dockerfile이 있는 디렉토리에서 다음 명령어를 실행하세요.

docker build -t my-flask-app .

이 명령어는 Docker 이미지를 빌드하고 “my-flask-app” 이라는 태그를 지정합니다. 이어서 다음 명령어를 실행하여 애플리케이션을 실행하세요.

docker run -p 5000:5000 my-flask-app

이 명령어는 Docker 컨테이너를 실행하고, 호스트의 5000 포트와 컨테이너의 5000 포트를 연결합니다.

결과 확인

이제 애플리케이션에 접속하여 결과를 확인해 보세요. 웹 브라우저에서 http://localhost:5000 로 접속하면 ‘Hello, World!’ 라는 메시지가 표시될 것입니다.

이번 블로그에서는 Flask와 Docker를 연동하여 애플리케이션을 개발하고 배포하는 방법을 간략하게 설명하였습니다. Flask와 Docker는 개별적으로도 많은 가치가 있지만, 함께 사용하면 애플리케이션 개발과 배포를 효율적으로 처리할 수 있습니다.