안녕하세요, 이번 시간에는 간단한 python flask 코드를 docker image로 실행시켜보는 시간을 가져볼거에요.
도커(Docker)는 컨테이너 기반 오픈소스 가상화 플랫폼입니다. 그렇다면 Docker image란 무엇일까요?
도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Docker image라고 합니다. 다시 말해, 컨테이너 실행(생성)에 필요한 모든 파일과 환경을 지닌 것입니다. 예를 들어서 어떤 프로젝트 도커 이미지는 그 프로젝트를 실행하기 위한 모든 파일을 가지고 있는 덩어리라고 생각하면 됩니다.
추가로 Docker image를 만들고 나면 실행을 해야하는데, 이 이미지를 실행한 상태를 도커 컨테이너(Docker Container)라고 합니다. 즉, 프로그램 및 프로그램 실행 환경을 담고 있는 패키지 이미지입니다. 여러 도커 이미지들이 모여 컨테이너가 되기도 하고 필요없으면 이미지를 버리기도 하면서 원하는 실행환경을 만드시면 됩니다.
이제 개념을 알았다면 한번 만들어볼까요!
※ 개발환경은 ubuntu와 github을 사용했습니다.
python flask를 docker image로 실행시키기
1.디렉토리 생성 및 파일 생성
$ mkdir docker_image_making
$ cd docker_image_making
2. 디렉토리 내에 requirements.txt 파일 생성
$ echo "Flask==0.12.2" > requirements.txt
$ touch hello.py
$ vi requirements.txt
3. requirements.txt에 들어갈 내용
Flask==0.12.2
bs4
requests

4. Dockerfile 생성
$ vi Dockerfile

- 위 내용을 입력한 후, ESC 버튼을 누르고 :wq 를 입력하여 파일을 저장한다.
FROM python
COPY . /app
WORKDIR /app
RUN pip install flask
EXPOSE 5000
CMD ["python", "hello.py"]
5. python flask hello.py 파일 생성
- 에러가 난다면 $ pip3 install flask 또는 $ pip install flask를 본인의 python 버전에 맞게 실행시켜 라이브러리를 다운받는다.
- 그래도 에러가 난다면 $ pip uninstall beautifulsoap 또는 $ pip uninstall beautifulsoap4를 해보자!
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__=='__main__':
app.run(debug=True,host='0.0.0.0')

6. 파이썬 파일이 잘 실행되는지 확인하기
$ python3 hello.py

도커 이미지 만들기
- 이제 파일들을 다 생성했다면 도커 이미지를 만들 차례이다.
$ docker build --tag [이미지명]
ex) $ docker build --tag image-test

- 잘 만들어 졌는지 확인하기
$ docker image ls

- 실행시키기
$ docker run -d -p [포트넘버] image-test
- 현재 실행되고 있는 파일 확인하기
$ docker ps

포트포워딩 및 실행 된 화면
'Infra > Container_Docker' 카테고리의 다른 글
쿠버네티스(Kubernetes, k8s)란? (0) | 2023.01.31 |
---|---|
도커란? (0) | 2022.08.08 |
[Docker] Docker 명령어 정리(-ing) (0) | 2022.05.02 |
[Docker]Docker와 Docker Compose 설치하기 (0) | 2022.05.02 |
[Docker] Docker Compose로 influxdb, grafana 실행하기 (0) | 2022.05.02 |