「내 컴퓨터에선 되는데」를 없애는 게 Docker입니다.
파이썬 + 의존성 + 시스템 라이브러리 + 환경변수까지 한 이미지에 담아 어디서든 똑같이 실행.
기본 Dockerfile.
FROM python:3.11-slim / WORKDIR /app / COPY requirements.txt .
/ RUN pip install -r requirements.txt / COPY .
.
/ CMD ["python", "main.py"].
6줄로 컨테이너화 완성.
이미지 빌드·실행.
docker build -t myapp .
— 이미지 생성.
docker run myapp — 실행.
이미지를 Docker Hub·AWS ECR 같은 레지스트리에 푸시 → 어디서든 docker pull로 받아 실행.
최적화.
1) python:3.11-slim 또는 python:3.11-alpine으로 작은 이미지.
2) 멀티스테이지 빌드 — 빌드 도구는 빌드 단계에만, 최종 이미지는 가벼움.
3) requirements.txt를 COPY .보다 먼저 → 코드 변경 시 캐시 활용으로 재빌드 빨라짐.
프로덕션 패턴.
컨테이너 자체는 작고 단순하게.
환경변수는 Docker 이미지에 넣지 말고 런타임에 주입(-e KEY=VALUE 또는 docker-compose).
비밀은 Vault·AWS Secrets Manager 같은 외부 시스템에.
로그는 stdout/stderr로 — Docker가 수집.
한 줄 요약
Docker는 파이썬 + 의존성 + 환경을 한 이미지에 패키지.
6줄 Dockerfile로 시작, 멀티스테이지·캐시 활용으로 최적화.
환경변수·비밀은 런타임 주입.
더 알아볼 것
- docker-compose로 다중 컨테이너
- Kubernetes로 오케스트레이션
- distroless 이미지 — 더 작게