728x90
flask 어플리케이션을 도커를 이용하여 로컬에서 실행해 보겠습니다.
일단, 보기 편하게 Docker Desktop을 설치해 줍니다.
https://www.docker.com/products/docker-desktop/
이 곳에서 본인의 운영체제에 맞는 도커 데스크탑을 설치하여 GUI 환경에서 컨테이너를 쉽게 확인하시기 바랍니다. 로그인은 구글 아이디로 가능합니다.
1. 폴더 구성하기
저의 디렉토리 구성은 다음과 같습니다.
docker_test/
|-- app.py
|-- Dockerfile
|-- requirements.txt
# docker_test 디렉토리 아래에 3개의 파일이 존재
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, Flask in Docker!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
# requirements.txt
Flask>=2.0.1
# Dockerfile
# 베이스 이미지로부터 시작
FROM ubuntu:20.04
# 작업 디렉토리 설정
WORKDIR /app
# 현재 디렉토리의 파일들을 컨테이너의 작업 디렉토리로 복사
COPY . /app
# 필요한 우분투 패키지 및 Python 설치
RUN apt-get update
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
# Flask를 최신 버전으로 업데이트
RUN pip3 install --no-cache-dir --upgrade Flask
# requirements.txt 파일이 있다면 해당 파일에 기록된 패키지들을 설치
RUN pip3 install --no-cache-dir -r requirements.txt
# Flask 어플리케이션 실행
CMD ["python3", "app.py"]
Dockerfile은 비어있는 txt파일을 하나 만들고 확장자를 지운 후 이름을 "Dockerfile"이라고 변경하면 됩니다.
2. 실행하기
2-1. 이미지 빌드
docker_test 폴더에서 터미널을 열어 이미지를 빌드해 줍니다.
# 이미지 빌드
docker build -t <당신의 이미지 이름> .
<> 꺽쇠 안의 문자는 이미지의 이름을 의미하므로 본인이 원하는대로 변경해 주세요.
그리고 마지막 .
은 꼭 작성해 주셔야 합니다. 현재 디렉토리에서 실행한다는 의미입니다.
2-2. 컨테이너 실행
# 컨테이너 실행
docker run -p 5000:5000 <당신의 컨테이너 이름>
왼쪽의 5000은 호스트의 포트, 오른쪽의 5000은 컨테이너의 포트, 호스트의 5000번과 컨테이너의 5000번 포트를 연결한다는 뜻. 이제 http://localhost:5000으로 접근할 때 Docker는 해당 요청을 컨테이너의 5000번 포트에 전달하여 flask 어플리케이션에 연결
그 외 명령어
도커 이미지 확인
docker images
도커 컨테이너 확인
docker ps -a
도커 이미지 삭제
docker rmi <images-id>
도커 컨테이너 삭제
docker rm <container-id>
# 컨테이너 실행
docker start <my-container-id>
# 종료
docker stop <my-container-id>
# 실행 중인 컨테이너의 상태 확인
docker exec -it <container-id> ls /app
728x90
'[Cloud] > [Docker]' 카테고리의 다른 글
[Docker] 도커 빌드 캐시 공유 가능한 명령어, 공유 불가 명령어 (2) | 2024.03.08 |
---|---|
[Docker] Docker cache 빠른 빌드 (0) | 2024.03.08 |
[Docker] 도커파일 기본설정 ubuntu, alpine, python:3.9-slim (0) | 2024.03.05 |
[Docker] 도커의 이미지, 컨테이너는 무엇일까? (2) | 2023.11.26 |