Introduction
Containers provide operating-system-level virtualization by abstracting the user space rather than virtualizing entire hardware like VMs. This shared architecture makes containers lightweight and efficient.
Container technology offers several key advantages over traditional virtual machines:
Portability: Containers run consistently across different environments where Docker is supported.
Resource Efficiency: Containers are lightweight, often measuring in megabytes versus gigabytes for VMs, enabling higher density on server infrastructure.
Performance: Fast deployment, boot times, patching, and updates compared to traditional infrastructure.
Consistency: Standardized environments across development, testing, and production stages.
Container orchestration platforms like Azure Kubernetes Service (AKS) manage complex containerized applications across multiple hosts, handling scheduling, load balancing, and service distribution that individual container runtime APIs cannot address at scale.
Learning objectives
After completing this module, you will:
- Design effective container build strategies
- Work with Docker containers and Dockerfiles
- Implement multi-stage builds and optimization techniques
- Deploy containers to Azure App Service and other Azure services
Prerequisites
- Basic understanding of DevOps concepts
- Familiarity with command-line interfaces
- Experience with software development and deployment processes