[파이썬] 파이썬 애플리케이션의 도커 컨테이너화

도커(Docker)는 애플리케이션을 “컨테이너”라는 단위로 격리하고 실행하는 오픈소스 플랫폼입니다. 파이썬 애플리케이션을 도커 컨테이너로 묶으면 애플리케이션의 실행 환경을 표준화할 수 있어 이식성과 확장성을 향상시킬 수 있습니다.

이 블로그 포스트에서는 파이썬 애플리케이션을 도커 컨테이너로 만드는 방법을 알아보겠습니다.

도커 이미지 작성하기

도커 이미지는 도커 컨테이너를 생성할 때 필요한 실행 환경과 애플리케이션 코드를 포함하는 패키지입니다. 이 패키지를 작성하기 위해 Dockerfile을 사용합니다.

다음은 파이썬 Flask 웹 애플리케이션의 Dockerfile 예시입니다:

FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "app.py" ]

위의 예시에서는 파이썬 3.9 버전을 기반으로 하는 이미지를 사용하고, 작업 디렉토리를 /app로 설정합니다. requirements.txt 파일을 이미지의 작업 디렉토리로 복사한 다음, pip를 사용하여 필요한 라이브러리를 설치합니다. 마지막으로, 현재 디렉토리의 모든 파일을 이미지의 작업 디렉토리로 복사하고, app.py를 실행시킵니다.

도커 이미지 빌드하기

Dockerfile을 작성한 후에는 이를 사용하여 도커 이미지를 빌드해야 합니다. 다음 명령을 사용하여 도커 이미지를 빌드할 수 있습니다:

docker build -t my-python-app .

위의 예시에서는 현재 디렉토리의 Dockerfile을 사용하여 my-python-app이라는 도커 이미지를 빌드합니다. -t 옵션은 이미지의 이름을 지정하는데 사용되며, .는 Dockerfile이 위치한 현재 디렉토리를 가리킵니다.

도커 컨테이너 실행하기

도커 이미지를 빌드한 후에는 해당 이미지를 사용하여 도커 컨테이너를 실행할 수 있습니다. 다음 명령을 사용하여 도커 컨테이너를 실행할 수 있습니다:

docker run -p 5000:5000 my-python-app

위의 예시에서는 my-python-app 이미지를 사용하여 도커 컨테이너를 실행하고, 호스트의 5000번 포트와 컨테이너의 5000번 포트를 매핑합니다. 이렇게 하면 애플리케이션에 대한 요청을 호스트의 5000번 포트로 전달할 수 있습니다.

결론

이제 파이썬 애플리케이션을 도커 컨테이너로 묶는 방법을 알게 되었습니다. 도커를 사용하면 애플리케이션의 실행 환경을 표준화하여 이식성과 확장성을 높일 수 있습니다. 도커에 대한 더 많은 정보와 다양한 기능을 탐색하여 개발 작업 효율성을 향상시켜보세요.

Happy coding!