도커에서 파이썬 실행 - 도커 설치, 이미지 빌드
들어가며
도커는 애플리케이션을 컨테이너라는 가상 환경에서 실행할 수 있는 플랫폼입니다. 도커를 사용하면 필요한 패키지, 파이썬 파일 등을 하나의 패키지로 묶어 일관되게 실행할 수 있습니다. 이를 통해 배포, 테스트, 실행을 효율적이고 일관되게 수행할 수 있는 유용한 도구입니다.
이 글에서는 도커 환경에서 이미지 파일을 생성하고 파이썬 파일을 실행하는 방법에 대해 소개합니다.
- 도커 설치
- 도커 이미지 빌드
- 파이썬 실행
도커 설치
다음의 링크를 통해 도커를 다운로드합니다. 개인의 PC 사양에 맞는 설치 파일을 선택하고, username 등 필요한 정보를 입력하면 도커를 설치할 수 있습니다.
Docker: Accelerated Container Application Development
Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.
www.docker.com
도커 설치를 확인하는 방법은 다음과 같습니다. cmd에 다음과 같은 명령어를 실행하여 도커의 설치 버전이 출력된다면 설치 성공입니다.
docker --version
도커 이미지 빌드
애플리케이션을 실행하기 위해서 도커 이미지 파일이 필요합니다. 도커 이미지 파일을 생성하는 것을 '도커 이미지 빌드'라고 합니다. 도커 이미지 파일은 동일한 환경을 로컬이 아닌 다른 시스템에서도 재현할 수 있도록 코드, 라이브러리, 환경 설정, 실행 파일 등을 포함하고 있습니다.
도커 이미지를 빌드하기 위한 과정은 다음과 같습니다.
디렉터리 준비 → 파이썬 스크립트 생성 → requirements.txt 생성 → Dockerfile 생성 → 도커 이미지 빌드
1. 디렉터리 준비
첫 번째 단계에서는 디렉터리를 준비합니다. 다음과 같이 test 폴더를 생성했습니다. 지금부터 생성하는 모든 파일은 동일한 디렉터리 내에 존재해야 합니다.
2. 파이썬 스크립트 생성
도커 환경에서 실행해야 하는 파이썬 스크립트 파일을 생성합니다. 테스트를 위해 간단한 문장과 리스트의 평균을 출력하는 helloworld.py를 생성했습니다.
3. requirements.txt 생성
requirements.txt는 프로젝트에서 필요한 라이브러리 및 패키지를 명시한 파일입니다. 실행에 필요한 패키지와 해당 버전을 명시하여 로컬을 포함한 모든 환경에서 동일한 결과를 보장합니다. 다음과 같이 패키지 이름과 버전을 작성합니다.
위에서 작성한 helloworld.py의 경우 numpy 패키지만 필요하므로 다음과 같이 작성합니다.
numpy==1.24.3
4. Dockerfile 생성
동일한 디렉터리에 Dockerfile을 생성합니다. Dockerfile에 대한 자세한 내용은 아래와 같습니다.
Dockerfile은 컨테이너 실행에 필요한 명령어를 작성한 파일로 기본 명령어는 다음과 같습니다.
- FROM: 기본 이미지를 지정합니다. 이 글에서는 파이썬 스크립트 파일을 실행하므로 python을 작성합니다.
- WORKDIR: 작업 디렉터리를 설정합니다. 파이썬 스크립트 파일은 app 디렉터리 내에서 실행됩니다.
- COPY: 프로젝트 파일을 복사합니다. 실행에 필요한 파일인 requirements.txt와 helloworld.py 파일을 복사합니다.
- RUN: requirements에 명시된 파이썬 패키지를 설치합니다. '--no-cache-dir' 옵션은 설치 과정에서 생성되는 캐시 파일을 제거하여 이미지 크기를 줄일 수 있습니다.
- CMD: 컨테이너를 실행할 때, 기본적으로 실행할 명령을 지정합니다. 이 글에서는 helloworld.py를 실행하는 것이 목표이므로 다음과 같이 작성하여 파이썬 스크립트 파일을 실행합니다.
# 1. 파이썬 기반
FROM python:3.9-slim
# 2. 작업 디렉터리 생성
WORKDIR /app
# 3. 프로젝트 파일 복사
COPY requirements.txt requirements.txt
COPY helloworld.py helloworld.py
# 4. 파이썬 패키지 설치
RUN pip install --no-cache-dir -r requirements.txt
# 5. 애플리케이션 실행
CMD ["python", "helloworld.py"]
5. 도커 이미지 빌드
도커 이미지 생성은 cmd 터미널에서 build 명령어를 사용합니다. docker_img_hello라는 이름으로 도커 이미지를 생성하는 방법은 다음과 같습니다. '-t'는 이미지 태그를 지정하는 옵션으로 docker_img_hello 이미지를 v0.1 태그를 지정하여 생성하는 명령어입니다. * 도커 이미지 이름 뒤에 온점은 필수입니다.
docker build -t docker_img_hello:v0.1 .
생성된 도커 이미지를 확인하는 방법은 다음과 같이 명령어를 입력하면, 도커 이미지 리스트가 출력됩니다. 위에서 태그로 지정한 v1.0의 docker_img_hello를 확인할 수 있습니다.
docker images
파이썬 실행
여기까지 문제없이 실행됐다면, 파이썬을 실행하기 위한 도커 환경은 준비됐습니다. 마지막 단계로 파이썬을 실행하는 명령어는 다음과 같습니다. run 명령어와 위에서 지정한 도커 이미지 이름과 태그를 입력합니다.
아래 이미지의 출력 결과를 확인하면, 정상적으로 실행된 것을 확인할 수 있습니다.
docker run docker_img_hello:v0.1
'Python' 카테고리의 다른 글
[파이썬] 지수 표현 없이 숫자 출력하는 방법 - numpy 배열, 데이터프레임 (2) | 2024.12.17 |
---|---|
[파이썬] 도커에서 파이썬 스크립트 차례대로 실행하는 방법 (1) | 2024.12.11 |
[파이썬] PostgreSQL DB 연동 - DB 연결 및 조회, psycopg2 (1) | 2024.11.20 |
[파이썬] 공공데이터 환율 정보 오픈API xml 파싱, 데이터프레임 변환 - json_normalize() (2) | 2024.11.18 |
[파이썬] 엑셀 통합파일(.xlsx) 시트별 저장 - ExcelWriter (0) | 2024.11.10 |