gnusraun

Docker python 컨테이너 만들기 본문

DevOps/Docker

Docker python 컨테이너 만들기

gnusraun 2023. 6. 11. 22:42
728x90

1. python 다운로드 3.11.4

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

 

2. python 설치 확인 및 python 디렉토리 지정

# python 버전 확인
$ python3 -V

# python 패키지 확인
$ pip3 list

# python 앱을 만들기 위해 flask 설치
$ pip3 install flask

# 디렉토리 경로 만들기
$ mkdir ./python_test

# 디렉토리로 이동
$ cd ./python_test

# python 패키지 리스트
pip3 freeze > requirements.txt

 

3. app.py 만들기

from flask import Flask
import os

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

# host는 반드시 0.0.0.0으로 지정 localhost로는 컨테이너에서 실행시켜도 안됨
# port는 8282로 지정, 사용자가 알맞게 수정 가능
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 8282)))

 

4. Dockerfile 만들기

# python image
FROM python:3.11

# 작업위치 /app으로 설정
WORKDIR /app

# python 패키지 리스트 복사
COPY requirements.txt requirements.txt

# 프로젝트에 필요한 패키지 및 shell 명령어를 실행 패키지가 많을 경우 requirements.txt를 사용
RUN pip3 install -r requirements.txt

# 현재 디렉토리(.)의 내용을 컨테이너 내의 /app 디렉토리에 복사합니다.
COPY . /app

# PORT 지정
EXPOSE 8282

# 컨테이너 실행 명령 설정 / host를 0.0.0.0으로 지정해야 사용 가능
CMD ["python3", "app.py", "--host", "0.0.0.0"]

 

 

5. Docker Image 생성

# 옵션
# -f Docker파일 지정 (생략시 현재 경로에 Dockerfile)
# -t 도커 이미지명 (생략시 랜덤의 이름으로 생성)
$ docker build -f Dockerfile -t python_test_docker .

# docker 이미지 생성 확인
$ docker images

 

 

6. Docker Container 생성

# 옵션
# -d 백그라운드 실행
# -p 포트
# --name 컨테이너 이름
# 맨뒤에 이름은 docker image명
$ docker run -d -p 8282:8282 --name python-test-container python-test-docker

# 현재 실행되고 있는 컨테이너 상태
# up: 컨테이너가 실행중, exited: 종료 상태, pause: 일시중지 상태
$ docker ps -a

 

 

7. 결과 확인

 

 

8. Docker Desktop 확인

Docker Image
Docker Containers - Actions에서 네모버튼으로 컨테이너 중지 가능

 

도커 이미지와 컨테이너가 잘 나타나 있는 것을 확인할 수 있다.

 

 

 

 

 

python으로 컨테이너 실행시 참고 자료 ERR_EMPTY_RESPONSE

에러 참고 - https://sangwonyoon.tistory.com/80

 

[FastAPI 에러 해결] ERR_EMPTY_RESPONSE in Docker Container

실행 환경 OS: MacOS FastAPI: 0.96.0 버전 문제 상황 로컬에서 정상적으로 작동하는 FastAPI 애플리케이션을 Docker 이미지로 빌드한 뒤, 컨테이너로 실행시켰더니 ERR_EMPTY_RESPONSE 메세지를 출력하며 아무

sangwonyoon.tistory.com

도커 이미지 참고 - www.flaticon.com/kr/free-icons/docker

 

23종의 무료 도커 아이콘

SVG, PSD, PNG, EPS 포맷 또는 웹폰트로 제공되는 23종 이상의 도커 아이콘을 다운로드받으세요. 최대의 무료 아이콘 데이터베이스 - Flaticon.

www.flaticon.com:443

 

728x90

'DevOps > Docker' 카테고리의 다른 글

Docker 명령어 모음  (0) 2024.01.19
Docker 설치하기 - Ubuntu  (0) 2024.01.19
Docker Java war 컨테이너 만들기  (0) 2023.06.11
Docker node.js 컨테이너 만들기  (0) 2023.06.11
Docker 설치하기 - MacOS  (0) 2023.06.11