컨테이너화는 개발자가 필요한 종속성과 함께 애플리케이션을 단일 단위로 패키징할 수 있게 해주는 엄청난 기능입니다. 그런 다음 호환성에 대해 걱정할 필요 없이 컨테이너를 이동하고 여러 환경에 걸쳐 애플리케이션을 배포할 수 있습니다.
플라스크란 무엇입니까?
Flask는 Python을 위한 최소한의 경량 마이크로 웹 프레임워크입니다. Python 언어를 사용하여 경량 웹 애플리케이션을 구축하는 데 필요한 필수 기능과 라이브러리를 제공합니다.
Flask는 HTTP 요청 및 기타 기능을 처리할 수 있는 유연한 패턴과 최소한의 디자인을 통합할 수 있는 웹 서버 게이트웨이 인터페이스 또는 WSGI 표준을 따릅니다. 예를 들어 Flask는 라우팅, 데이터베이스 등과 같은 웹 기능을 지원합니다.
전제 조건:
이 튜토리얼에서 제공되는 코드와 명령을 따라하려면 다음 도구가 있는지 확인하십시오.
- 컴퓨터에 Python 인터프리터가 설치되어 있습니다(버전 3.11 이상 권장).
- 호스트 머신에 Docker 엔진 설치(버전 23 이상 권장)
- 원하는 텍스트 편집기 또는 IDE
주어진 요구 사항이 충족되면 이 튜토리얼을 진행할 수 있습니다.
플라스크 애플리케이션 생성
짐작할 수 있듯이 첫 번째 단계는 컨테이너화하려는 Python 애플리케이션을 만드는 것입니다. 우리의 경우 'hello world'를 인쇄하는 최소한의 앱으로 이를 시연합니다.
프로젝트의 소스 코드를 저장할 새 디렉터리를 만들고 'app.py'라는 Python 파일을 만듭니다.
선호하는 텍스트 편집기나 IDE를 사용하여 'app.py'를 편집하고 다음과 같이 애플리케이션에 대한 코드를 추가합니다.
~에서 플라스크 수입 플라스크앱 = 플라스크 ( __이름__ )
@ 앱. 노선 ( '/' )
데프 hello_world ( ) :
반품 '
안녕, 세계!
'
Dockerfile 만들기
다음으로 애플리케이션을 Docker 이미지로 패키징할 수 있는 지침을 정의해야 합니다. 이미지를 설정하는 데 필요한 모든 지침과 도구가 포함된 Dockerfile을 사용합니다.
'hello.py'와 동일한 디렉터리에 확장자 없이 'Dockerfile'이라는 새 파일을 만듭니다. 다음 명령을 실행하십시오.
$ 터치 Dockerfile파일을 편집하고 다음과 같이 코드를 추가합니다.
공식 Python 이미지를 기본 이미지로 사용합니다.
파이썬에서: 3.12 -rc-슬림WORKDIR /앱
복사 . /앱
# 플라스크 설치
RUN pip install --no-cache- 너 -r 요구 사항. txt
# Flask 앱에 포트 5000을 노출합니다.
폭로하다 5000
# 플라스크 애플리케이션을 실행합니다
명령 [ '파이썬' , 'app.py' ]
이전 Dockerfile은 다음 작업을 수행합니다.
- 공식 Python 3.12 슬림 이미지를 기본 이미지로 사용합니다.
- 컨테이너 내부의 작업 디렉터리를 '/app'으로 설정합니다.
- 프로젝트 디렉터리의 내용을 컨테이너에 복사합니다.
- 'requirements.txt' 파일을 사용하여 'pip install'을 실행하여 Flask 및 기타 종속성을 설치합니다.
- Flask 애플리케이션을 위해 포트 5000을 노출합니다.
- Flask 애플리케이션을 실행하는 명령을 정의합니다.
프로젝트 디렉터리에 'requirements.txt' 파일이 있는지 확인하고 다음과 같이 파일 내용을 추가합니다.
플라스크 == 2.3.3이 경우 Flask 버전 2.3.3을 설치하도록 지정합니다.
Docker 이미지 빌드
이제 Flask 애플리케이션과 Dockerfile이 준비되었으므로 다음 명령을 사용하여 이미지를 계속 빌드할 수 있습니다.
docker build -t 플라스크-docker-app .이전 명령을 실행하기 전에 프로젝트 디렉터리에 있는지 확인하세요. Flask-docker-app을 이미지에 할당하려는 이름으로 바꿀 수 있습니다.
Docker 컨테이너 실행
Docker 이미지가 빌드되면 다음과 같이 'docker run' 명령을 사용하여 이미지를 기반으로 컨테이너를 실행할 수 있습니다.
도커 실행 -p 5000 : 5000 플라스크-도커-앱그러면 컨테이너가 생성되고 컨테이너의 포트 5000이 호스트 시스템의 포트 5000에 매핑됩니다.
실행되면 브라우저를 열고 다음으로 이동하십시오. http://localhost:5000 .
'Hello, World!'가 표시되어야 합니다. Flask 애플리케이션의 메시지입니다.
결론
이 자습서에서는 Docker를 사용하여 간단한 Python Flask 애플리케이션을 컨테이너화하는 방법을 배웠습니다.