Visão Geral
O Curso Containerizing Python Apps with Docker ensina como empacotar, distribuir e executar aplicações Python em contêineres Docker de forma eficiente e escalável. Os participantes aprenderão desde os fundamentos da conteinerização até práticas avançadas de otimização de imagens, uso de Docker Compose, e integração com pipelines CI/CD e ambientes de produção.
Conteúdo Programatico
Introduction to Containerization
- Understanding virtualization vs containerization
- Benefits of Docker for Python applications
- Overview of Docker architecture and components
Setting Up the Environment
- Installing Docker on Windows, macOS, and Linux
- Configuring Docker Desktop and CLI
- Verifying installation and basic Docker commands
Building Your First Python Container
- Creating a simple Python application
- Writing a basic Dockerfile
- Building and running Docker images
Working with Docker Images and Containers
- Managing images and containers via CLI
- Understanding layers, tags, and registries
- Cleaning up unused containers and images
Optimizing Dockerfiles for Python Apps
- Using multi-stage builds
- Reducing image size and improving build time
- Handling dependencies with
requirements.txt and virtual environments
Managing Environment Variables and Configuration
- Passing configuration via environment variables
- Using
.env files for sensitive data
- Dynamic configuration and runtime customization
Networking and Volumes in Docker
- Exposing ports and linking containers
- Using Docker volumes for data persistence
- Networking best practices for Python microservices
Docker Compose for Multi-Container Applications
- Introduction to Docker Compose syntax
- Defining multi-service setups (web, database, cache)
- Running and managing multi-container environments
Testing and Debugging Containers
- Inspecting logs and container internals
- Using
docker exec for troubleshooting
- Integrating pytest and debugging tools in Docker
Container Security and Best Practices
- Managing user permissions and security context
- Scanning images for vulnerabilities
- Using official and minimal base images
Integrating Docker with CI/CD Pipelines
- Building and pushing Docker images in Jenkins or GitLab CI
- Automating tests and deployments
- Using Docker Hub and AWS ECR for image hosting
Deploying Python Containers in Production
- Running containers in cloud environments (AWS, GCP, Azure)
- Managing scalability with Docker Swarm and Kubernetes
- Monitoring containerized Python applications
Final Project
- Containerizing and deploying a full Python web application
- Integrating Compose, environment variables, and CI/CD automation