Development Tools


Docker Mastery: with Kubernetes +Swarm from a Docker Captain

Build, test, deploy containers with the best mega-course on Docker, Kubernetes, Compose, Swarm and Registry using DevOps

4.59 (45103 reviews)



19.5 hours


Nov 2020

Last Update
Regular Price

What you will learn

How to use Docker, Compose and Kubernetes on your machine for better software building and testing.

Learn Docker and Kubernetes official tools from an award-winning Docker Captain!

Learn faster with included live chat group (21,000 members!) and weekly live Q&A.

Gain the skills to build development environments with your code running in containers.

Build Swam and Kubernetes clusters for server deployments!

Hand's-on with best practices for making Dockerfiles and Compose files like a Pro!

Build and publish your own custom images.

Create your own custom image registry to store your apps and deploy in corporate environments.


Updated Monthly in 2019! Be ready for the Dockerized future with the number ONE Docker + Kubernetes mega-course on Udemy. Welcome to the most complete and up-to-date course for learning and using containers end-to-end, from development and testing, to server deployments and production. Taught by an award-winning Docker Captain and DevOps consultant.

Just starting out with Docker? Perfect. This course starts out assuming you're new to containers.

Or: Using Docker now and need to deal with real-world problems? I'm here for you! See my production topics around Swarm, Kubernetes, secrets, logging, rolling upgrades, and more.

BONUS: This course comes with Slack Chat and Live Weekly Q&A with me!

"I've followed another course on (Udemy). This one is a million times more in depth." "...when it comes to all the docker stuff, this is the course you're gonna want to take" - 2019 Student Udemy Review

Just updated in November 2019 with sections on:

  • Docker Security top 10

  • Docker 19.03 release features

Why should you learn from me? Why trust me to teach you the best ways to use Docker? (Hi, I'm Bret, please allow me to talk about myself for a sec):

  • I'm A Practitioner. Welcome to the real world: I've got 20 years of sysadmin and developer experience, over 30 certifications, and have been using Docker and the container ecosystem for my consulting clients and my own companies since Docker's early days. Learn from someone who's run hundreds of containers across dozens of projects and organizations.

  • I'm An Educator. Learn from someone who knows how to make a syllabus: I want to help you. People say I'm good at it. For the last few years I've trained thousands of people on using Docker in workshops, conferences and meetups. See me teach at events like DockerCon, O'Reilly Velocity, GOTO Conf, and Linux Open Source Summit. I hope you'll decide to learn with me, and join the fantastic online Docker community.

  • I Lead Communities. Also, I'm a Docker Captain, meaning that Docker Inc. thinks I know a thing or two about Docker and that I do well in sharing it with others. In the real-world: I help run two local meetups in our fabulous tech community in Norfolk/Virginia Beach USA. I help online: usually in Slack and Twitter, where I learn from and help others.

"Because of the Docker Mastery course, I landed my first DevOps job. Thank you Captain!" - Student Ronald Alonzo

"There are a lot of Docker courses on Udemy -- but ignore those, Bret is the single most qualified person to teach you." - Kevin Griffin, Microsoft MVP

Giving Back: a portion of my profit on this course will be donated to supporting open source and protecting our freedoms online! This course is only made possible by the amazing people creating open source. I'm standing on the shoulders of (open source) giants! Donations will be split between my favorite charities including the Electronic Frontier Foundation and Free Software Foundation. Look them up. They're awesome!

This is a living course, and will be updated as Docker and Kubernetes features change.

This course is designed to be fast at getting you started but also get you deep into the "why" of things. Simply the fastest and best way to learn the latest container skills. Look at the scope of topics in the Session and see the breadth of skills you will learn.

Also included is a private Slack Chat group with 20k students for getting help with this course and continuing your Docker and DevOps learning with help from myself and other students.

"Bret's course is a level above all of those resources, and if you're struggling to get a handle on Docker, this is the resource you need to invest in." - Austin Tindle, Course Student

Some of the many cool things you'll do in this course:

  • Edit web code on your machine while it's served up in a container

  • Lock down your apps in private networks that only expose necessary ports

  • Create a 3-node Swarm cluster in the cloud

  • Install Kubernetes and and learn the leading server cluster tools

  • Use Virtual IP's for built-in load balancing in your cluster

  • Optimize your Dockerfiles for faster building and tiny deploys

  • Build/Publish your own custom application images

  • Learn the differences between Kubernetes and Swarm

  • Create your own image registry

  • Use Swarm Secrets to encrypt your environment configs, even on disk

  • Deploy container updates in a rolling always-up design

  • Create the config utopia of a single set of YAML files for local dev, CI testing, and prod cluster deploys

  • And so much more...


After taking this course, you'll be able to:

  • Use Docker in your daily developer and/or sysadmin roles

  • Deploy apps to Kubernetes

  • Make Dockerfiles and Compose files

  • Build multi-node Swarm clusters and deploying H/A containers

  • Make Kubernetes YAML manifests and deploy using infrastructure-as-code methods

  • Build a workflow of using Docker in dev, then test/CI, then production with YAML

  • Protect your keys, TLS certificates, and passwords with encrypted secrets

  • Keep your Dockerfiles and images small, efficient, and fast

  • Run apps in Docker, Swarm, and Kubernetes and understand the pros/cons of each

  • Develop locally while your code runs in a container

  • Protect important persistent data in volumes and bind mounts

  • Lead your team into the future with the latest Docker container skills!


Extra things that come with this course:

  • Access to the course Slack team, for getting help/advice from me and other students.

  • Bonus videos I put elsewhere like YouTube, linked to from this courses resources.

  • Weekly Live Q&A on YouTube Live.

  • Tons of reference links to supplement this content.

  • Updates to content as Docker changes their features on these topics.


Docker Mastery: with Kubernetes +Swarm from a Docker Captain
Docker Mastery: with Kubernetes +Swarm from a Docker Captain
Docker Mastery: with Kubernetes +Swarm from a Docker Captain
Docker Mastery: with Kubernetes +Swarm from a Docker Captain


Course Introduction and Docker Intro

Course Roadmap (overview)

November 2019 Update!

Why Docker? Why Now?

Getting Course Resources (GitHub Repo)

Course Slack Chat: 21k Students Learning Containers

YouTube Live Q&A with Bret

The Big FAQ

The Best Way to Setup Docker for Your OS

Docker Editions: Which Do I Use?

Installing Docker: The Fast Way

Windows Docker Options

Docker for Windows 10 Pro/Ent: Setup and Tips

Docker Toolbox for Win7, 8, and 10 Home: Setup and Tips

Docker for Mac Setup and Tips

Docker for Linux Setup and Tips

Quiz on Proper Docker Install

Code or Text Editor for Docker and Compose files

Terminal Shell and Tab Completion for Docker CLI

Docker Version Format Change

Creating and Using Containers Like a Boss

Check Our Docker Install and Config

Starting a Nginx Web Server

Debrief: What Happens When We Run a Container

Container VS. VM: It's Just a Process

Windows Containers: Docker Is No Longer Just Linux

Assignment: Manage Multiple Containers

Assignment Answers: Manage Multiple Containers

Container Quiz 1

What's Going On In Containers: CLI Process Monitoring

Getting a Shell Inside Containers: No Need for SSH

Docker Networks: Concepts for Private and Public Comms in Containers

FIXME: Change In Official Nginx Image Removes Ping

Docker Networks: CLI Management of Virtual Networks

Docker Networks: DNS and How Containers Find Each Other

Container Quiz 2

Assignment: Using Containers for CLI Testing

Assignment Answers: Using Containers for CLI Testing

Assignment: DNS Round Robin Test

Assignment Answers: DNS Round Robin Test

Container Images, Where To Find Them and How To Build Them

What's In An Image (and What Isn't)

The Mighty Hub: Using Docker Hub Registry Images

Images and Their Layers: Discover the Image Cache

Image Tagging and Pushing to Docker Hub

Building Images: The Dockerfile Basics

Building Images: Running Docker Builds

Building Images: Extending Official Images

Image Quiz

Assignment: Build Your Own Dockerfile and Run Containers From It

Assignment Answers: Build Your Own Dockerfile and Run Containers From It

Using Prune to Keep Your Docker System Clean (YouTube)

Container Lifetime & Persistent Data: Volumes, Volumes, Volumes

Container Lifetime & Persistent Data

Persistent Data: Data Volumes

Shell Differences for Path Expansion

Persistent Data: Bind Mounting

Quiz on Persistent Data

Assignment: Database Upgrades with Named Volumes

Assignment Answers: Database Upgrades with Named Volumes

Assignment: Edit Code Running In Containers With Bind Mounts

Assignment Answers: Edit Code Running In Containers With Bind Mounts

Database Passwords in Containers

Making It Easier with Docker Compose: The Multi-Container Tool

Docker Compose and The docker-compose.yml File

Trying Out Basic Compose Commands

Assignment: Build a Compose File For a Multi-Container Service

Assignment Answers: Build a Compose File For a Multi-Container Service

Adding Image Building to Compose Files

Assignment: Compose For Run-Time Image Building and Multi-Container Development

Assignment Answers: Compose For Run-Time Image Building and Multi-Container Dev

Quiz on Docker Compose

Swarm Intro and Creating a 3-Node Swarm Cluster

Swarm Mode: Built-In Orchestration

Create Your First Service and Scale It Locally

UI Change For Service Create/Update

Docker Machine Bug With Swarm

Creating a 3-Node Swarm Cluster

Quiz on Swarm Mode Basics

Swarm Basic Features and How to Use Them In Your Workflow

Scaling Out with Overlay Networking

Scaling Out with Routing Mesh

Quiz on Docker Swarm Basics

Assignment: Create A Multi-Service Multi-Node Web App

Assignment Answers: Create A Multi-Service Multi-Node Web App

Swarm Stacks and Production Grade Compose

Secrets Storage for Swarm: Protecting Your Environment Variables

Using Secrets in Swarm Services

Using Secrets with Swarm Stacks

Assignment: Create A Stack with Secrets and Deploy

Assignment Answers: Create A Stack with Secrets and Deploy

Swarm App Lifecycle

Using Secrets With Local Docker Compose

Full App Lifecycle: Dev, Build and Deploy With a Single Compose Design

Service Updates: Changing Things In Flight

Healthchecks in Dockerfiles

Quiz on Swarm App Lifecycle

Info on Swarm Mastery

Container Registries: Image Storage and Distribution

Docker Hub: Digging Deeper

Understanding Docker Registry

Run a Private Docker Registry

Assignment: Secure Docker Registry With TLS and Authentication

Using Docker Registry With Swarm

Third Party Image Registries

Quiz on Container Registries

Docker in Production

My DockerCon Talk on Docker and Swarm in Production

The Future of Swarm

Swarm Raft Quorum and Recovery (Laura Frank from DockerCon 2017)

The What and Why of Kubernetes

Kubernetes Intro

What Is Kubernetes

Why Kubernetes

Kubernetes vs Swarm

Kubernetes Install And Your First Pods

Section Intro

Kubernetes Architecture Terminology

Kubernetes Local Install

Kubernetes Container Abstractions

Kubectl run, create, and apply

Our First Pod With kubectl run

Scaling ReplicaSets

Inspecting Kubernetes Objects

Exposing Kubernetes Ports

Section Intro

Service Types

Creating a ClusterIP Service

Creating a NodePort and LoadBalancer Service

Kubernetes Services DNS

Kubernetes Management Techniques

Section Intro

Run, Expose, and Create Generators

The Future of Kubectl Run

Imperative vs. Declarative

Three Management Approaches

Moving to Declarative Kubernetes YAML

Section Intro

Kubectl apply

Kubernetes Configuration YAML

Building Your YAML Files

Building Your YAML Spec

Dry Runs and Diff's

Labels and Label Selectors

Your Next Steps and The Future of Kubernetes

Section Intro

Storage in Kubernetes


CRD's and The Operator Pattern

Higher Deployment Abstractions

Kubernetes Dashboard

Namespaces and Context

Future of Kubernetes

Docker Security Good Defaults and Tools

Section Intro: Top 10 Security Steps for Docker

Docker Cgroups and Namespaces

Docker Engine's Out-Of-The-Box Security Features

Docker Bench, The Host Configuration Scanner

Using USER in Dockerfiles to Avoid Running as Root

Docker User Namespaces for Extra Host Security

Code Repo and Image Scanning for CVE's

Sysdig Falco, Content Trust, and Custom Seccomp and AppArmor Profiles

Docker Rootless Mode

The Security Top 10 Differences for Windows Containers

What are Distroless Images?

Are Swarm and Kubernetes Secrets Really Secure?

Docker 19.03 Release New Features

Section Intro

BuildKit and the new Docker buildx CLI

Docker Context and SSH Connections

Docker App and Image Packaging of Compose YAML

Rootless Mode in Docker Engine

Docker Desktop Enterprise

Docker Desktop Enterprise Clusters

DevOps and Docker Clips

DevOps and Docker Talk Intro

Alpine Base Images. Are They Really More Secure?

Dealing With Non-root Users In Containers and File Permissions

Apache Web Server Design. Many Sites In One Container, or Many Containers?

Docker Network IP Subnet Conflicts with Outside Networks

Raspberry Pi Development in Docker

Windows 10 Containers Get Process Isolation

Should You Move Postgres to Containers

Using Supervisor To Run Multiple Apps In A Container

Should You Use Docker Compose or Swarm For A Single Server?

Docker Environment Configs, Variables, and Entrypoints

Java and JBoss in Containers. One .war File Per Container?

TLS in Dev and Prod with Docker

Multiple Docker Images From One Git Repo

Docker + ARM, Using Raspberry Pi or AWS A1 Instances with Docker

Docker and Swarm RBAC Options

ENTRYPOINT vs. CMD, what's the difference in Dockerfiles

How to Use External Storage in Docker

Can I Turn a VM into a Container?

Startup Order With Multi-Container Apps

Dockerfile and Compose File Reviews

Section Intro - My Reviews Of Your Dockerfiles

Real World PHP Dockerfile Review

Real World PHP, Apache, and Alpine Dockerfile Review

Real World PHP and FPM Dockerfile Review

Real World Elasticsearch Compose Stack File

Extra's, Common Questions, and Resources

Node.js Good Defaults For Docker

PHP and Docker Good Defaults Project Template

About the DCA (Docker Certificated Associate)



Nigel9 October 2020

Love this course and keep coming back to it. Cheers by the way, I become fully competent in K8s, and landing work operating it. No matter how long I spend with k8s, its still a pain! I still prefer Docker Swarm. Its simple, Its powerful, and I really dont understand the Fuss over K8s when Docker Swarm is around. Popularity does not = best. Ease of Use + Power + Price = best. My Opinion. Thats why Im using it for my public applications that my company creates. I dont care what everyone says about K8s, I prefer having a life and spending less time on DevOps than spending it battling away just so I can have the (so called industry leader) badge. If my company and products ever reach multi million dollar status, well then... I'll have the resources to go down the K8s road, and frankly it wont be me. To all those reading this. ITs still worth you understanding how K8s runs, and you're going to need to know it. You cannot avoid it. But word of advice, If your setting up an online business or your first product, make life easy on yourself and go Docker Swarm. It will take way less time to learn (and troubleshoot trust me!!!) , and more time to focus on your actual product and your business. You can always upgrade to K8s when/if you hit the big time. Again.. Just my opinion. Thank you Again Bret, for this course, you're the Man!

Samuel6 October 2020

So well for now! Really happy because i can learn docker and english at same time. I can understand easy!

Manuel5 October 2020

My company is turning into Docker containers, so it is a good course for me that I will be using a lot

Ali4 October 2020

Too old content. Really bad kubernetes coverage. I think the course should be named docker and docker swarm with an overview to kubernetes

Sherin3 October 2020

It was an amazing experience for me to go through your course and doing hands on all the exercise . Hoping to start the work on live project sooner will seek for your help in case get stuck anywhere through different communication channels such as slack , youtube live

Chi-Hui27 February 2020

This is the best course about Docker I've ever taken. The teacher explains everything in detail and offers practical assignments and source codes. Besides, he keeps the contents updated, so there is no problem doing the assignments on my own.

Sean26 February 2020

Very good match for what I was looking for. Allowed me to enhance my docker knowledge and flow straight into kubernetes

Jared25 February 2020

So far, easy to understand explanations of why Docker is important from the big picture point of view.

Alexis25 February 2020

The training is solid, the trainer have lots of knowledge, but i have one complain the instructor don't indicate from where we can find some files, examples some "yml" with the deployment details to create our own replica and test the commands.

steven25 February 2020

Great instructor. Very informative and most importantly, he keeps it interesting and easy to follow along.

Shakti22 February 2020

So far I have just completed docker chapters and I am pretty confindent in docker after doing this all

Halia21 February 2020

Docker sistemini mevcut işletmemize entegre etmeye karar verdik fakat internet üzerinde aradığımız senaryolarla ilgili fazla detaylı bilgiler bulunmuyor. Fakat bu kursta docker yapıları ile ilgili detaylı bilgiler verilmekte daha 4. bölümü bitirmememe rağmen birçok konuya vakıf haldeyim

Anders21 February 2020

It is a very solid course that uses both questions and assignment to solidify your understanding of the material for docker and docker swarm. If you do the assignments, you start getting it into your fingers. For Kubernetes, it is more of an introduction, but that section of the course lacks questions and assignments. At the end of the course, there is some optional material. Some of it was interesting, some of it was annoying for guy that have a need to complete everything, but the DockerFile reviews at the very end was very useful. It is a very good course for docker and docker swarm, which also gives you a starting point for Kubernetes.

Marian20 February 2020

Course was complex, until last sections of it. Then it takes only "reading" changis and new ideas, that are not implemented, or only external "non-documented" featured have been listened.

Vinod19 February 2020

In today’s world learning is easier using Udemy app and technology which they’re using , which’s more than real world class room teaching environment, you can start watching classes / lessons as and when you want and there are large range of courses and teachers / trainers available from all over the world ..


Expired4/28/202094% OFF


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore