A comprehensive collection of Docker exercises and projects demonstrating various containerization techniques, from basic concepts to advanced multi-service orchestration.
- Container Basics: Building and running simple containers
- Multi-stage Builds: Optimizing image sizes and build processes
- Docker Compose: Orchestrating multi-service applications
- CI/CD Integration: GitLab CI and GitHub Actions pipelines
- Database Management: MySQL, PostgreSQL, MongoDB, Redis
- Web Servers: Nginx, Apache configurations
- Development Workflows: Hot reloading, volume mounting
- Production Deployment: Optimized production-ready containers
| Exercise | Description | Technologies |
|---|---|---|
| 01-basic-containers | Simple Alpine containers with custom commands | Alpine Linux |
| 02-sass-compilation | Node.js container for SCSS compilation with hot reloading | Node.js, Sass |
| 03-nodejs-mongodb | Full-stack application with Node.js backend and MongoDB | Node.js, MongoDB |
| 04-php-apache-mariadb | PHP application with Apache and MariaDB, including CI/CD | PHP, Apache, MariaDB, GitLab CI |
| 05-multi-service-stack | Complex multi-service application with multiple databases | PHP, Nginx, MariaDB, PostgreSQL, Redis |
| 06-todo-application | Complete Todo application with multi-service architecture | PHP, Nginx, MariaDB, PostgreSQL, Redis |
| 07-production-todo-app | Production-ready Todo application with CI/CD pipeline | PHP, Nginx, PostgreSQL, Redis, GitHub Actions |
Each exercise is self-contained with its own README and instructions. Navigate to any exercise directory and follow the setup instructions.
- Docker Desktop or Docker Engine
- Docker Compose
- Git
cd 06-todo-application
docker compose up -d
# Access at http://localhost:8080- Containerization: Docker, Docker Compose
- Languages: PHP, Node.js, JavaScript
- Databases: MySQL, PostgreSQL, MongoDB, Redis
- Web Servers: Nginx, Apache
- CI/CD: GitLab CI, GitHub Actions
- Build Tools: Composer, npm, Sass
This project is open source and available under the MIT License.
Author: Melih Cetinkaya
Course: Virtualization and Containerization