CS5720 - Week 12
Slide 233 of 240

Containerization with Docker

What is Docker?

Docker is a containerization platform that packages applications and their dependencies into lightweight, portable containers that run consistently across different environments.
Key Concepts:

Container: Lightweight, standalone package
Image: Blueprint for creating containers
Dockerfile: Instructions to build images
Registry: Storage for Docker images

Why Use Docker for ML?

  • 🎯
    Environment Consistency
    Same behavior across development, testing, and production
  • 🔒
    Dependency Isolation
    Avoid conflicts between different ML frameworks
  • 📦
    Portability
    Deploy anywhere - cloud, on-premise, or edge
  • 📈
    Easy Scaling
    Horizontal scaling with container orchestration
  • 🏷️
    Version Control
    Track and manage different model versions

Docker ML Deployment Workflow

1
Build Image
Create Docker image with model and dependencies
2
Test Locally
Verify container works correctly
3
Push Registry
Upload image to container registry
4
Deploy
Run containers in production environment

Practical Docker Examples

Dockerfile
Docker Commands
Docker Compose
Kubernetes
# Dockerfile for ML model deployment FROM python:3.9-slim # Set working directory WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ gcc \ g++ \ && rm -rf /var/lib/apt/lists/* # Copy requirements first for better caching COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy model and application code COPY model.pkl . COPY app.py . COPY utils/ ./utils/ # Create non-root user for security RUN useradd -m -u 1000 mluser && chown -R mluser:mluser /app USER mluser # Expose port EXPOSE 8080 # Health check HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8080/health || exit 1 # Run application CMD ["gunicorn", "--bind", "0.0.0.0:8080", "--workers", "4", "--timeout", "120", "app:app"]
Click on the tabs above to explore different Docker configurations and commands!
Prepared by Dr. Gorkem Kar