Flask API를 Dockerize하는 방법
Flask API를 Dockerize하는 방법
매우 간단한 몇 단계로 Flask 애플리케이션을 도킹하는 방법 탐색
Flask는 빠르고 쉬운 방법으로 경량 웹 애플리케이션 및 API를 개발하는 데 도움이 되는 Python 마이크로 웹 프레임워크입니다.
Werkzeg WSGI 툴킷과 Jinja 2 템플릿 엔진을 기반으로 합니다.
Docker는 컨테이너를 사용하여 애플리케이션을 보다 쉽게 생성, 배포 및 실행할 수 있는 도구입니다. 시간이 걸리므로 이 기사에서 컨테이너의 이점에 대해서는 다루지 않을 것이므로 완료하는 데만 집중할 것입니다. 도커에 대한 자세한 내용은 여기로 이동하십시오.
기본 작동하는 Flask 앱이 있다고 가정합니다.
앱 구조가 무엇이든 이를 고정화하려면 프로젝트에 Dockerfile이 필요합니다. 일반적으로 루트 디렉토리에 보관하지만 설정 방법에 따라 다릅니다.
이 기사를 위해 다음과 같은 간단한 설정을 가정해 보겠습니다.
flaskapp
|---app.py
|---Dockerfile
|---requirements.txt
먼저 간단한 Flask 앱을 살펴보겠습니다. app.py
파일:
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello_world():
return 'Hello, we have Flask in a Docker container'if __name__ == "__main__":
app.run(debug=True)
이제 우리의 requirements.txt
파일:
Flask==2.1.2
OK… 이제 가장 중요한 것은 Dockerfile입니다.
여기에는 이미지를 만드는 데 필요한 모든 정보가 포함됩니다. 살펴보겠습니다.
FROM python:3.8-slim-busterWORKDIR /app# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txtRUN pip install -r requirements.txtCOPY . /appENTRYPOINT [ "python" ]CMD [ "app.py" ]
다음 Docker 지침 중 일부를 살펴보겠습니다.
- Dockerfile의 첫 번째 줄은 Docker에게 새 이미지의 기반이 될 이미지를 알려줍니다. 우리는 선택했다
python:3.8-slim-buster
단순함을 위해 그러나 Ubuntu와 같은 다른 것을 기반으로 할 수 있습니다. WORKDIR
도커 이미지 내부에 작업 디렉토리를 설정합니다. 다음 모든 지침은 이 디렉토리 내에서 작동합니다.RUN
명령을 실행합니다. 이 경우,pip install
우리의 요구 사항.COPY
첫 번째 매개변수에서 두 번째 매개변수로 파일을 복사합니다.ENTRYPOINT
실행 파일로 실행되도록 컨테이너를 구성합니다.ENTRYPOINT
명령이 실행됩니다.
남은 것은 다음을 사용하여 이미지를 구축하는 것입니다. docker build
. 우리는 또한 사용할 것입니다 — tag
플래그를 사용하여 이미지의 이름을 지정합니다.
Dockerfile이 있는 디렉터리에서 다음 명령을 실행합니다.
docker build --tag my-app .
이 명령은 프로젝트의 크기와 요구 사항에 따라 시간이 걸릴 수 있습니다.
빌드가 완료되면 다음 명령을 사용하여 이미지가 생성되었는지 확인할 수 있습니다.
docker image lsREPOSITORY TAG IMAGE ID CREATED SIZE
my-app latest ef514c013f1a About an hour ago 812MB...
우리의 이미지는 우리가 설정한 태그와 함께 여기에 나타나야 합니다.
이제 이미지를 컨테이너로 실행할 수 있습니다. docker run
명령을 실행하고 이미지의 이름을 지정합니다.
우리는 또한 두 개의 플래그를 전달할 것입니다:
-d
도커가 분리 모드에서 실행되기를 원한다는 것을 나타내는 분리 플래그입니다.-p 5000:5000
도커에게 포트를 노출하고 매핑하기를 원한다고 알려주는 포트 플래그5000
따라서 컨테이너 외부에서 앱에 액세스할 수 있습니다.
명령은 다음과 같아야 합니다.
docker run -d -p 5000:5000 my-app
그게 다야! 해 보자.
브라우저로 이동하여 API를 누르십시오. http://localhost:5000
.
당신은 볼 것입니다 Hello, we have Flask in a Docker container
메시지.
다음 명령을 사용하여 현재 실행 중인 컨테이너를 확인할 수 있습니다.
docker ps
실행 중인 컨테이너를 중지하려면 다음 명령을 실행할 수 있습니다.
docker stop
이렇게 하면 컨테이너가 정상적으로 중지됩니다. 컨테이너를 중지하는 보다 적극적인 방법은 다음과 같습니다.
docker kill
컨테이너를 다시 시작, 일시 중지 및 일시 중지 해제할 수도 있습니다.
docker restart
docker pause
docker unpause
컨테이너에 대한 로그를 보려면 다음을 사용할 수 있습니다.
docker logs
그리고 그게 다야!
from 투자의본질 https://ift.tt/Nz7KtyY
via IFTTT