Docker & Kubernetes: The Practical Guide

Learn Docker, Docker Compose, Development Setups, Deployment and all about Kubernetes from the ground up!

Course Overview

About This Course

You’ve probably hit the same wall: your app runs locally, then breaks somewhere else — different OS, different dependencies, different “small” environment details. Or you keep hearing Docker and Kubernetes in job posts and team conversations, but it’s still fuzzy what they actually do.

In this course, you’ll build clarity by seeing the concepts in action. You’ll get guided setup on your system, then move through explanations, slides, and demos that show not just what to click or type, but why each step matters in real development and deployment workflows.

By the end, you’ll be able to package applications so they run predictably across machines, connect multiple services without guesswork, and take a project from local development to deployment — including running it in a cluster when that’s the right tool for the job.

What You'll Learn

You’ll cover the full workflow from creating Docker images and running multi-container setups to deploying with Kubernetes resources and AWS examples like ECS and EKS.

  • Install Docker anywhere

    Set up Docker on macOS, Windows, or Linux and get a working local environment you can rely on. You’ll know what to install, how to verify it works, and how to start using it immediately.

  • Build and run containers

    Create custom images, use existing images, and run containers based on them. You’ll be able to choose the right approach for a project and confidently manage the container lifecycle.

  • Persist application data

    Handle data correctly in containerized apps by using volumes to manage and persist state. You’ll be able to design setups that don’t lose data when containers restart or are replaced.

  • Connect containers with networks

    Configure container networking so services can talk to each other and to the outside world. You’ll use Docker Networks and DNS service discovery to make multi-container communication predictable.

  • Deploy Docker applications

    Deploy containerized applications in different ways: manually, via managed services, and via Kubernetes. You’ll be able to pick a deployment path that matches the project’s needs and constraints.

  • Run workloads on Kubernetes

    Create Kubernetes resources like deployments and services and run your containers in a Kubernetes cluster. You’ll also work with Kubernetes data handling (volume types) plus networking and DNS service discovery.

Ready to get started?

See enrollment options

Prerequisites

  • No prior Docker or Kubernetes experience is required.

  • Basic (web) development knowledge is required, but you don’t need to know a specific programming language.

  • For the AWS parts (about 4 hours), you’ll need a credit card to use AWS yourself; you can also watch those sections without deploying.

Who Is This Course For?

  • Complete beginners

    You’ve never used Docker or Kubernetes and want a guided path that doesn’t assume prior container knowledge. This course gives you a structured way to get from “what is this?” to “I can use it.”

  • Confused developers

    You’ve tried to understand Docker but it still feels abstract, and you’re not sure why it’s worth the effort. You’ll get the missing mental model through concrete demos that make the purpose click.

  • Web developers

    You build web apps and want to step into modern DevOps practices without getting lost in theory-only explanations. This is a practical next step to make your development and deployment workflow more predictable.

Curriculum Overview

Start Now

Preview the structure and pacing of this course before you begin.

  • Getting Started16 lectures1h 8m
    • 01Welcome to the Course2:32 min
    • 02What Is Docker?4:42 min
    • 03Why Docker & Containers?5:59 min
    • 04Join Our Learning Community0:00 min
    • 05Virtual Machines vs Docker Containers8:55 min
    • 06Docker Setup - Overview4:31 min
    • 07Docker Setup - macOS3:33 min
    • 08Docker Setup - Windows9:44 min
    • 09Docker Setup - Docker Toolbox for Older Systems6:51 min
    • 10An Overview of the Docker Tools3:04 min
    • 11Installing & Configuring an IDE2:07 min
    • 12Getting Our Hands Dirty!9:23 min
    • 13Course Outline4:14 min
    • 14How To Get The Most Out Of This Course3:24 min
    • 15Course Resources0:00 min
    • 16The Academind Pro Referral Program0:00 min
  • Docker Images & Containers: The Core Building Blocks29 lectures2h 41m
    • 01Module Introduction1:16 min
    • 02Images & Containers: What and Why?2:29 min
    • 03Using & Running External (Pre-Built) Images8:28 min
    • 04Our Goal: A NodeJS App6:40 min
    • 05Building our own Image with a Dockerfile11:14 min
    • 06Running a Container based on our own Image7:58 min
    • 07EXPOSE & A Little Utility Functionality0:00 min
    • 08Images are Read-Only!5:51 min
    • 09Understanding Image Layers8:20 min
    • 10A First Summary3:18 min
    • 11Quiz 1: Images & Containers0:00 min
    • 12Managing Images & Containers2:01 min
    • 13Stopping & Restarting Containers4:31 min
    • 14Understanding Attached & Detached Containers7:50 min
    • 15Attaching to an already-running Container0:00 min
    • 16Entering Interactive Mode10:44 min
    • 17Deleting Images & Containers6:26 min
    • 18Removing Stopped Containers Automatically3:18 min
    • 19A Look Behind the Scenes: Inspecting Images4:00 min
    • 20Copying Files Into & From A Container4:57 min
    • 21Naming & Tagging Containers and Images9:28 min
    • 22Time to Practice: Images & Containers - Problem4:00 min
    • 23Time to Practice: Images & Containers - Solution21:26 min
    • 24Sharing Images - Overview6:37 min
    • 25Pushing Images to DockerHub10:44 min
    • 26Pulling & Using Shared Images4:50 min
    • 27Quiz 2: Managing Images & Containers0:00 min
    • 28Module Summary5:00 min
    • 29Module Resources0:00 min
  • Managing Data & Working with Volumes23 lectures1h 55m
    • 01Module Introduction1:27 min
    • 02Understanding Data Categories / Different Kinds of Data7:20 min
    • 03Analyzing a Real App3:02 min
    • 04Building & Understanding the Demo App8:36 min
    • 05Understanding the Problem5:25 min
    • 06Introducing Volumes2:57 min
    • 07A First, Unsuccessful Try7:45 min
    • 08Named Volumes To The Rescue!8:35 min
    • 09Removing Anonymous Volumes0:00 min
    • 10Getting Started With Bind Mounts (Code Sharing)10:42 min
    • 11Combining & Merging Different Volumes7:52 min
    • 12A NodeJS-specific Adjustment: Using Nodemon in a Container7:16 min
    • 13Volumes & Bind Mounts: Summary5:54 min
    • 14Quiz 3: Volumes & Bind Mounts0:00 min
    • 15A Look at Read-Only Volumes5:40 min
    • 16Managing Docker Volumes7:39 min
    • 17Using "COPY" vs Bind Mounts3:26 min
    • 18Don't COPY Everything: Using "dockerignore" Files2:31 min
    • 19Adding more to the .dockerignore File0:00 min
    • 20Working with Environment Variables & ".env" Files8:47 min
    • 21Using Build Arguments (ARG)5:09 min
    • 22Module Summary5:15 min
    • 23Module Resources0:00 min
  • Networking: (Cross-)Container Communication14 lectures50m
    • 01Module Introduction1:16 min
    • 02Case 1: Container to WWW Communication3:49 min
    • 03Case 2: Container to Local Host Machine Communication2:13 min
    • 04Case 3: Container to Container Communication2:40 min
    • 05Analyzing the Demo App7:50 min
    • 06Creating a Container & Communicating to the Web (WWW)6:45 min
    • 07Making Container to Host Communication Work4:37 min
    • 08Container to Container Communication: A Basic Solution7:06 min
    • 09Introducing Docker Networks: Elegant Container to Container Communication10:00 min
    • 10How Docker Resolves IP Addresses2:22 min
    • 11Quiz 4: Docker Container Communication & Networks0:00 min
    • 12Docker Network Drivers0:00 min
    • 13Module Summary1:26 min
    • 14Module Resources0:00 min
  • Building Multi-Container Applications with Docker11 lectures1h 19m
    • 01Module Introduction2:08 min
    • 02Our Target App & Setup10:48 min
    • 03Dockerizing the MongoDB Service4:26 min
    • 04Dockerizing the Node.js7:30 min
    • 05Moving the React SPA into a Container8:26 min
    • 06Adding Docker Networks for Efficient Cross-Container Communication11:50 min
    • 07Adding Data Persistence to MongoDB with Volumes8:16 min
    • 08Volumes, Bind Mounts & Polishing for the NodeJS Container15:02 min
    • 09Live Source Code Updates for the React Container (with Bind Mounts)6:50 min
    • 10Module Summary4:43 min
    • 11Module Resources0:00 min
  • Docker Compose: Elegant Multi-Container Orchestration11 lectures57m
    • 01Module Introduction3:08 min
    • 02Docker-Compose: What & Why?4:33 min
    • 03Creating a Compose File6:17 min
    • 04Diving into the Compose File Configuration11:20 min
    • 05Docker Compose Up & Down3:46 min
    • 06Working with Multiple Containers14:51 min
    • 07Adding Another Container5:55 min
    • 08Building Images & Understanding Container Names5:25 min
    • 09Quiz 5: Docker Compose0:00 min
    • 10Module Summary2:29 min
    • 11Module Resources0:00 min
  • Working with "Utility Containers" & Executing Commands In Containers8 lectures29m
    • 01Module Introduction & What are "Utility Containers"?2:39 min
    • 02Utility Containers: Why would you use them?3:02 min
    • 03Different Ways of Running Commands in Containers5:56 min
    • 04Building a First Utility Container4:51 min
    • 05Utilizing ENTRYPOINT5:27 min
    • 06Using Docker Compose6:09 min
    • 07Module Summary1:31 min
    • 08Module Resources0:00 min
  • A More Complex Setup: A Laravel & PHP Dockerized Project12 lectures1h 16m
    • 01Module Introduction2:29 min
    • 02The Target Setup7:13 min
    • 03Adding a Nginx (Web Server) Container8:08 min
    • 04Adding a PHP Container10:43 min
    • 05Adding a MySQL Container3:21 min
    • 06Adding a Composer Utility Container3:59 min
    • 07Creating a Laravel App via the Composer Utility Container3:36 min
    • 08Launching Only Some Docker Compose Services11:54 min
    • 09Adding More Utility Containers6:25 min
    • 10Docker Compose with and without Dockerfiles4:08 min
    • 11Bind Mounts and COPY: When To Use What14:20 min
    • 12Module Resources0:00 min

And 8 more sections in the full course.

Ready to Get Started?

Choose the option that works best for you.

Single Course

Docker & Kubernetes: The Practical Guide

One Payment. Lifetime Access.

$99one-time

  • One-time payment
  • All future updates for this course
  • Downloadable resources & code
  • Certificate of completion
  • Hands-on exercises & projects
  • Self-paced learning
  • English captions on all videos
  • Lifetime access