Docker

1. Dockerizing a PHP Web Application

🎯 Goal

Learn how to containerize a PHP web application using Docker, deploy it to Docker Hub, and share it with others for seamless deployment across different environments.

📋 Prerequisites

Before beginning this exercise, you should:

  • Have PHP installed on your local machine (version 7.4 or higher)
  • Have Docker Desktop installed and currently running
  • Have a Docker Hub account (free at https://hub.docker.com)
  • Have basic understanding of command line operations
  • Have the PHP application source files ready (either copy from the Appendix at the end of this tutorial or use your own PHP files)

📚 Learning Objectives

By the end of this exercise, you will:

»

2. Deploy Docker Containers from Docker Hub to Azure VM

🎯 Goal

Learn how to provision an Azure Virtual Machine with Docker pre-installed, then deploy containers from Docker Hub including both public images (nginx) and your own containerized applications from the previous exercise.

📋 Prerequisites

Before beginning this exercise, you should:

  • Have an Azure subscription with credits available
  • Have Azure CLI installed locally (version 2.0 or higher)
  • Have completed the previous Docker exercise (PHP application pushed to Docker Hub with multi-architecture support)
  • Have basic understanding of Linux command line
  • Have SSH client available (built-in on Mac/Linux, use PowerShell on Windows)

⚠️ Note: If you haven’t built your Docker image with multi-architecture support, refer to Step 3 in the previous tutorial for instructions using docker buildx

»

3. Production Multi-Container Setup with Docker Compose

📚 Learning Objectives

After completing this exercise, you will be able to:

  • Design and implement a production-grade multi-container architecture
  • Configure nginx as a reverse proxy for PHP-FPM
  • Use Docker Compose to orchestrate multiple containers
  • Implement container networking and service dependencies
  • Apply security best practices for production deployments

🔧 Prerequisites

  • Docker Desktop installed and running
  • Basic understanding of web servers and PHP
  • Completed Exercise 1 (Dockerizing a PHP Web Application)
  • Source files from Exercise 1 (src/ directory with PHP application)

📋 Architecture Overview

In this exercise, we’ll create a production-ready setup with:

»

4. Deploy Containers to Azure Container Apps

📚 Learning Objectives

After completing this exercise, you will be able to:

  • Deploy containers to Azure Container Apps
  • Use both Azure Portal and Azure CLI for deployment
  • Update running containers with new images
  • Understand the benefits of serverless container hosting
  • Manage container applications without infrastructure complexity

🔧 Prerequisites

  • Azure subscription with credits
  • Azure CLI installed (version 2.37.0 or later)
  • Docker Hub account with your PHP application from Exercise 1
  • Basic understanding of containers

📋 What is Azure Container Apps?

Azure Container Apps is a serverless container hosting service that allows you to:

»