Docker From Basics to Production Course

CTR-816

carmel-website
carmel website
carmel-website
carmel-website

About This Course

This course takes you from Docker basics all the way to running applications on Kubernetes in production. You’ll work with a real microservices app, learning how to containerize it, manage multi-container setups, and deploy it to a Kubernetes cluster you build yourself on AWS. You’ll cover Docker fundamentals, networking, security, CI/CD, and Kubernetes — ending with a fully deployed, publicly accessible application.

Audience Profile

  • Developers
  • Architects
  • DevOps
  • SRE
  • IT Operators

The App

In this course, we’ll work with a real AI-powered application consisting of two microservices:

  • YoloAPI – A Python FastAPI backend that receives images and uses the YOLOv8 model to detect objects (like cars, people, dogs, etc.)
  • YoloUI – A simple web frontend where users can upload images and see the detected objects

You’ll start by running this app manually on a single EC2, then package it into Docker containers, and finally deploy it to a Kubernetes cluster that you’ll build yourself on AWS EC2 instances using Kubeadm. .

Course Outline

Docker Fundamentals

A short introduction to cloud computing in AWS. Then we’ll run the YoloAPI app on a single instance, first as a simple regular Python process (venv, install dependencies, etc), then as a Docker container. You’ll learn what containers are and why they’re useful.

Intro to cloud computing in AWS

  • Amazon Web Services introduction
  • Regions and Availability zones
  • AWS shared responsibility model
  • Different service models – IaaS, PaaS, SaaS

Introduction to Docker and Containerization

  • Linux-wise – what are actually containers?
  • Docker architecture and components
  • Overview of Docker’s ecosystem and community (DockerHub)

Basic Docker Commands and Workflow

  • Docker commands syntax and structure
  • Running your first container
  • Docker CLI commands for managing images and containers
  • Inspecting containers and viewing logs

Docker Images and Containers

  • Docker images – build, layers, caching
  • Dockerfile best practices (multistage builds)

Managing Data in Docker with Volumes

  • Persistent data and stateful applications
  • Volumes, bind mounts, and tmpfs mounts
  • Volume management commands and strategies

Docker in Development with Visual Studio Code

  • Visual Studio Code Docker setup
  • Remote – Containers extension
  • Debugging and testing in containers
  • Hands-on: Developing inside a container

Advanced Docker Usage and New Features

We’ll provision a full multi-containers app (YoloAPI and YoloUI) as well designed Docker compose projects in a single instance (custom networks and volumes, security considerations). Finally, we’ll build a simple CI/CD pipeline that deployed a new version of the container on every push.

Introduction to Docker Networking

  • Container networking basics
  • Network types in Docker (none, bridge, host, overlay)
  • Port mapping and container linking
  • Network troubleshooting and best practices

Docker Compose

  • docker-compose.yml configurations
  • Multi-container applications with Docker Compose
  • Hands-on: Multi-container setup with networking
  • Reproducible development environments with Docker Compose

Security in Docker

  • Docker in rootless mode
  • Vulnerability detection with Docker Scout
  • Docker security best practices

CI/CD with Docker: Integration into DevOps Workflows

  • CI/CD pipelines with GitHub Actions
  • Managing and versioning container images

Introducing K8S

We’ll introduce k8s foundations, architecture, control-plane and worker components. We’ll manually provision a cluster using kubeadm on a few instances (multiple control-planes, multiple workers). Finally, we’ll deploy our Yolo app in the cluster.

  • Kubernetes Foundations
  • K8S Architecture and design – control-plane and worker nodes components
  • Labels, namespaces
  • K8S Objects – Pod, replicaset, deployment, service, configmap, secrets

System reliability and data durability

We’ll introduce advanced features in k8s cluster – data persistence and stateful applications, cluster monitoring. We’ll persist the YoloAPI uploaded images data (using statefulsets), and deploy a monitoring stack to collect logs in cluster nodes (using daemonselts)

  • K8S Volumes
  • K8S StateLess and Stateful applications
  • Daemonsets
  • Microservices Design and best practices in the world of K8S – HA, autoscaling, rolling update, resource quota

Networking and advance Kubernetes

We’ll expose our app to be publicly available using LB and real registered domain. In addition we’ll talk and practice some advanced topics in cluster networking.

  • Kubernetes Networking
  • Pod to Pod
  • Exposing Services – ClusterIP, NodePort, LoadBalancer, External
  • IP Per Pod
  • Inter Pod Communication
  • Intra Pod Communication

Ingress Controllers

  • Ingress overview
  • L7 cloud LB

Prerequisites

This course is designed for individuals with a foundational knowledge of command-line interfaces and a good understanding of software development and deployment concepts.
We also recommend our Microservices Seminar as all aspects of the course are around the terminology and practices in MSA.
Familiarity with the basics of networking and cloud computing will enhance the learning experience.

Fill in the details and we will get back to you as soon as possible

Why choose Carmel Training?

We offer quality solutions for professional training that save you time and resources, and provide you with the tools to take your skills one step further!

carmel website

leading lecturers

Have training experience
and practical rich

carmel website

coming to you

You determine the location of the course and the date

carmel website

theory and practice

Study materials and laboratories
Microsoft official available in the cloud

carmel website

customized program

Full and personal adjustment to the requirements and needs of the organization

You might also be interested..

Skip to content