Docker | Flask App 띄우기

Jihun Kim·2021년 10월 6일
0

Docker

목록 보기
2/3
post-custom-banner

Docker로 Flask 앱을 띄우려면 아래의 설정이 필요하다.
<app.py>

app.run(host='0.0.0.0', port=5000)

Dockerfile 작성하기

  • dockerfile은 docker image의 설계도와 같다.

1. dockerfile 구성

  • FROM : 어떤 리눅스를 사용할 것인지에 대한 것(Docker의 이미지를 지정함)
    👉 언어와 버전에 따른 여러 os가 있다.
    👉 python docker image를 검색하면 템플릿을 볼 수 있다.
  • COPY : 파일을 복사함
    👉 .은 현재 디렉토리, /app은 컨테이너의 디렉토리
    👉 미리 만들어 놓은 app.py 파일을 /app에다가 copy하라는 뜻이다.
    👉 즉, docker build를 실행하는 곳의 파일을 /app으로 복사하라는 뜻
  • WORKDIR : 컨테이너에서 명령어가 실행되는 디렉토리(컨테이너가 실행되었을 때 시작점)
  • RUN : 컨테이너를 구성할 파일을 만들 때 사용한다.
    👉 여기서는 flask 라이브러리를 설치하고 app.py의 권한을 바꾸어 주는 명령어가 실행되었다.
  • CMD : 컨테이너가 실행된 후에 실행할 명령어
    👉 python3 app.py 명령어 이용해 flask app을 실행한다.

2. 내 파이썬 디렉토리에 Dockerfile 만들기(확장자 없음)

Docker build후 container로 띄우기

  • Dockerfile로 build를 한다.
    👉 Dockerfile을 읽어서 image를 만들게 된다.
docker build -t flask-app .
  • docker run으로 컨테이너를 실행한다.
    👉 app.py에 설정해 놓았던 포트 번호로 접근해야 한다.
docker run -d -p 5000:5000 flask-app

app.py가 있는 디렉토리로 이동 후 실행하기

👉 아래 명령어 입력

☁  docker  docker build -t flask-app .
👉 아래와 같이 실행된다.
...
 => [2/5] COPY . /app                                                                                                0.1s
 => [3/5] WORKDIR /app                                                                                               0.0s
 => [4/5] RUN pip3 install flask                                                                                     5.2s
 => [5/5] RUN chmod +x /app/app.py
 ...

👉 확인해 보면 다음과 같이 image가 잘 생성 되었다.

☁  docker  docker images
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
flask-app    latest    0bf635958d7e   About a minute ago   55MB

👉 아직 아무것도 없다.

☁  docker  docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

👉 아래와 같이 명령어를 입력해서 container를 실행한다.

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

👉 만약 "app.py"에 수정된 사항이 있다면 다시 build를 실행한다.

☁  docker  docker build -t flask-app .

👉 이번에는 -d 옵션을 주어서 터미널이 닫혀도 실행되도록 한다.

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

👉 아래와 같이 이름을 달리해서 여러개를 띄울 수도 있다. 아래와 같이 하면 image명이 바뀐다.

☁  docker  docker run -d -p 5000:5000 flask-app:v2
profile
쿄쿄
post-custom-banner

0개의 댓글