도커(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!