Dockerizing Apps Project
Course Description
This is a purely project-based course designed to give you extensive hands-on experience in containerizing real-world applications with Docker. You will learn by doing, as you dockerize a wide variety of application stacks, from simple static websites to complex, multi-service applications. The curriculum covers everything from Java Spring Boot with MySQL, to Python Flask with PostgreSQL and Redis, and even a full WordPress CMS with MariaDB. You will not just write Dockerfiles; you will use Docker Compose to orchestrate multi-container environments, solidifying your understanding of networking, and data persistence in a practical context.
Who is this course for
This course is designed for individuals who have a foundational understanding of Docker and want to apply their knowledge to build a portfolio of practical projects. It is ideal for:
Aspiring DevOps Engineers: Who need hands-on experience to showcase their skills.
Software Developers: Who want to become proficient at containerizing the applications they build.
Computer Science Students & Recent Graduates: Looking to build a strong, practical portfolio that stands out to employers.
Anyone who has learned Docker theory and now wants to put it into practice.
Course Objectives
Upon successful completion of this course, you will be able to:
Dockerize a Static Website: Package a static HTML/JavaScript application into a lightweight Nginx container.
Containerize Java Applications: Dockerize a Java Spring Boot application and connect it to a MySQL database using Docker Compose.
Master Python Application Dockerization: Containerize various Python Flask applications, integrating them with databases like MySQL, PostgreSQL, and caching services like Redis.
Orchestrate Multi-Container Setups: Use Docker Compose to define, run, and manage complex, multi-service applications.
Deploy a Full CMS: Dockerize a complete WordPress installation with a MariaDB database, managing configuration and persistent data.
Prerequisites
To succeed in this project-based course, you must have:
Solid Docker Fundamentals: You should be comfortable with writing a basic Dockerfile, building images (
docker build
), running containers (docker run
), and understand the basic syntax of adocker-compose.yml
file.Command-Line Proficiency: You must be proficient in using a terminal or command prompt.
A Working Docker Environment: You need Docker and Docker Compose installed and running on your system to complete the projects.
Course outline
Section 1: Dockerizing Static Apps
Hands-on Lab: Dockerizing the Dojo Jump Game Using Nginx Alpine
Section 2: Dockerizing Java Spring Apps
Hands-on Lab: Dockerizing a Java Spring & MySQL App ("Goldenwaste")
Hands-on Lab: Composing the Java Spring & MySQL "Goldenwaste" App
Section 3: Dockerizing Python Apps
Hands-on Lab: Dockerizing a Python Flask Todo App with MySQL
Hands-on Lab: Dockerizing a Python Flask & PostgreSQL App ("Twoge")
Hands-on Lab: Enhancing the "Twoge" App with Docker Networking and Persistent Volumes
Hands-on Lab: Composing a Flask-Redis App
Hands-on Lab: Composing a Todo-list Python Flask App with MySQL and Nginx
Hands-on Lab: Composing a Python Flask Bootstrap Weather Utility App
Section 4: Dockerizing Other Stacks
Hands-on Lab: Composing a WordPress site with a MariaDB Database