4.64 out of 5
22789 reviews on Udemy

Docker Mastery: The Complete Toolset From a Docker Captain

Build, compose, deploy, and manage Docker containers from development to DevOps based Swarm clusters
Bret Fisher
99,782 students enrolled
How to use Docker and Compose on your machine for better software building and testing.
Learn Docker's official tools from an award-winning Docker Captain!
Learn faster with included live chat group (15,000 members!) and weekly live Q&A.
Skills to build advanced development environments with your code running in containers.
Build a fancy multi-node Swarm cluster for production 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.

Be ready for the Dockerized future with the number ONE Docker course on Udemy. Welcome to the most complete and up-to-date course for learning and using Docker end-to-end, from development and testing, to deployment 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, secrets, logging, rolling upgrades, and more.

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

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.


“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 features and workflows 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 docker 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 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

  • 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

  • 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

  • Make Dockerfiles and Compose files

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

  • 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

  • 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.

  • Monthly new videos on popular questions from students.


Course Introduction and Docker Intro

Black Friday 2018 Update!
Course Roadmap (overview)

High level overview of sections and lectures.

Why Docker? Why Now?

Learn about the origin of containers and why Docker is the right tool at the right time!

Let's Meet Bret!

Learn a bit about Bret.

Getting Course Resources (GitHub Repo)
Course Slack Room: Chat Live With Me and Other Students
Weekly YouTube Live Q&A with Bret

Join Bret on YouTube Live every week for getting questions answered about Docker Mastery and all things containers.

The Big FAQ

Common Questions in This Course

The Best Way to Setup Docker for Your OS

Docker Editions: Which Do I Use?

Docker's product line is expanding and this will help you decide which "Edition" is for you, and also go over CE vs. EE, versioning, and Edge vs. Stable.

Installing Docker: The Fast Way
Windows Docker Options

What you need to get started on Windows 10, Server 2016, and options for older versions.

Docker for Windows 10 Pro/Ent: Setup and Tips

Walkthough of getting "Docker for Windows" and tools for this course to work on Windows 10 Pro, Enterprise, and Server 2016

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

Walkthrough of getting "Docker Toolbox" and tools for this course to work on Windows 7, 8, and 10 Home edition

Docker for Mac Setup and Tips

Walkthrough of getting Docker for Mac installed and additional tools for this course. Includes details on bash tab completion and settings tweaks.

Docker for Linux Setup and Tips

Walkthrough of getting Docker tools working on Linux desktop or server. Also tips on code editor, permissions, cloning the course repo, and more.

Code or Text Editor for Docker and Compose files
Terminal Shell and Tab Completion for Docker CLI
Docker Version Format Change in Early 2017

Note that Docker's version has changed so it may look weird in this course if you don't understand the numbering change.  Here's some quick info.

Creating and Using Containers Like a Boss

Check Our Docker Install and Config

Section Overview, and ensuring Docker is working and on a recent version.

Starting a Nginx Web Server

Learn how to run a container, and manage its existence.

Debrief: What Happens When We Run a Container

Starting a container does lots of things in the background, lets talk about those.

Container VS. VM: It's Just a Process

See how a container is quite different then a VM, and yet how they have similar concepts.

Windows Containers: Docker Is No Longer Just Linux

"Windows Containers" were born in 2016, and are quickly catching up with the Linux container craze. Here's a preview Lecture of what's coming in a future update to this course.

Assignment: Manage Multiple Containers

Assignment to startup a typical three container service with nginx, mysql, and apache. Also, getting used to using docs.docker.com.

Assignment Answers: Manage Multiple Containers

(optional) I walk through the assignment as how I would do it.

What's Going On In Containers: CLI Process Monitoring

Use cli commands to monitor containers and see what's running in them.

Getting a Shell Inside Containers: No Need for SSH

Use docker cli to get a full shell inside containers, no SSH needed. Also learn a about Linux distributions in containers like Ubuntu and Alpine.

Docker Networks: Concepts for Private and Public Comms in Containers

Learn the concepts around container networking, and how Docker handles it. Inspect a container IP and see diagrams on how traffic gets in and out.

FIXME: Change In Official Nginx Image Removes Ping

Quick note on a fix you should add to future lessons where I use ping from a nginx container.

Docker Networks: CLI Management of Virtual Networks

Practice the commands for controlling docker networks on your local machine.

Docker Networks: DNS and How Containers Find Each Other

Understand how containers find each other using dynamic DNS rather than IP's.

Assignment: Using Containers for CLI Testing

Assignment to use container shells to test networking between them.

Assignment Answers: Using Containers for CLI Testing

(optional) I walk through the assignment as how I would do it.

Assignment: DNS Round Robin Test

Assignment to test DNS alias naming on multiple containers.

Assignment Answers: DNS Round Robin Test

(optional) I walk through the assignment as how I would do it.

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

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

Section Overview, and a discussion about what an image is and isn't.

The Mighty Hub: Using Docker Hub Registry Images

Dig into what Docker Hub provides us. It's the future of package managers.

Images and Their Layers: Discover the Image Cache

Docker caches images locally, you'll need to know how it works in order to manage it properly. Let's dig in!

Image Tagging and Pushing to Docker Hub

Getting images in and out of an image repository is a fundamental common task, lets try it.

Building Images: The Dockerfile Basics

Dockerfiles are the recipes you make to create great containers. Let's start with the essentials of what's in the Dockerfile.

Building Images: Running Docker Builds

Once you have your Dockerfile, you need to build an image from it. Lets see how that works.

Building Images: Extending Official Images

Dockerfiles can add on to existing images. Lets see how we might do that.

Assignment: Build Your Own Dockerfile and Run Containers From It

Assignment to create your own Dockerfile recipe and test it in containers.

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

(optional) I walk through the assignment as how I would do it.

Using Prune to Keep Your Docker System Clean (YouTube)

Using the prune command to clean up various things in docker.

Container Lifetime & Persistent Data: Volumes, Volumes, Volumes

Container Lifetime & Persistent Data

Understand the lifecycle of a container and how we should separate application artifacts and unique data that we need to preserve across containers.

Persistent Data: Data Volumes

Learn how to use Docker Volumes to store important data we need  to keep, and let your persistent data outlive the container.

Persistent Data: Bind Mounting

See how to create a link between host and container directories for various purposes, including easy source-file development.

Assignment: Database Upgrades with Named Volumes

Assignment to deal with databases and persistent data in containers through volumes.

Assignment Answers: Database Upgrades with Named Volumes

(optional) I walk through the assignment as how I would do it.

Assignment: Edit Code Running In Containers With Bind Mounts

Assignment to edit code on host while it's served up in a container.

Assignment Answers: Edit Code Running In Containers With Bind Mounts

(optional) I walk through the assignment as how I would do it.

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

Docker Compose and The docker-compose.yml File

Section Overview and discussing the features and purpose of compose files, a key part of using Docker locally and in production.

Trying Out Basic Compose Commands

Get your feet wet with basic commands and workflow of our new favorite tool in this course!

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

Assignment to create your own Compose file to run a multi-app service (Drupal and Postgres).

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

(optional) I walk through the assignment as how I would do it.

Adding Image Building to Compose Files

Learn to have Compose run your docker builds for you on startup.

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

Assignment to create your own Compose file to build images with custom options (Drupal and Postgres).

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

(optional) I walk through the assignment as how I would do it.

Swarm Intro and Creating a 3-Node Swarm Cluster

Swarm Mode: Built-In Orchestration

Learn how Docker has some great built-in features for scaling your containers and operating a cluster.

Create Your First Service and Scale It Locally

Let's use your local docker in a 1-node Swarm to learn the basics.

UI Change For Service Create/Update
November 2018: Docker Machine Bug With Swarm

Note that 18.09.0 release has a bug in docker-machine with Swarm ports not working.

Creating a 3-Node Swarm Cluster

You'll build a 3-host Swarm cluster so we can scale our apps out for high-availability.

Swarm Basic Features and How to Use Them In Your Workflow

Scaling Out with Overlay Networking

Learn how Swarm can seamlessly let containers talk between hosts.

Scaling Out with Routing Mesh

See how Swarm can accept packets on any Swarm node and route to the proper container.

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

Create your own distributed container service, with custom networks and multiple containers dynamically provisioned. 

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

(optional) I walk through the assignment as how I would do it.

Swarm Stacks and Production Grade Compose

Learn how to use your existing compose files in a production Swarm cluster.

Secrets Storage for Swarm: Protecting Your Environment Variables

With this lesson you'll learn why you need to protect secrets and how Swarm enables you to do that easily.

Using Secrets in Swarm Services

Walk through the features of Secrets and how to store private information securely and ensure they get to only the containers that need them.

Using Secrets with Swarm Stacks

Learn how to deploy Stacks with Secrets referenced in your compose YAML files.

Assignment: Create A Stack with Secrets and Deploy

Modify a compose file to make it production-ready and use secrets to pass config values.

Assignment Answers: Create A Stack with Secrets and Deploy

(optional) I walk through the assignment as how I would do it.

Swarm App Lifecycle

Using Secrets With Local Docker Compose

Understand how to use "simulated" secrets with the docker-compose CLI.

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

Learn how a single or multiple compose files can serve both dev and ops on local machines, in your CI automation, and in CD for production deployments.

Service Updates: Changing Things In Flight

Learn key features of the service update command and when to use it for updating your containers while the are live.

Healthchecks in Dockerfiles

Discover how built-in healthchecks make your containers even smarter, and how docker handles them.

Container Registries: Image Storage and Distribution

Docker Hub: Digging Deeper

Learn more features you get from Docker Hub for free, and what you need to pay for.

Understanding Docker Registry

Learn what the free Docker Distribution (aka Registry) can do for us and what things should we be concerned with when deploying it.

Run a Private Docker Registry

Learn how to run and use your own image registry on your own servers.

Assignment: Secure Docker Registry With TLS and Authentication

Learn how to secure Docker Registry by enabling HTTPS and basic auth using Play With Docker.

Using Docker Registry With Swarm

Registry mostly acts the same in a Swarm cluster, but lets use Play-With-Docker to see some slight differences.

Third Party Image Registries

Learn some other popular options for storing your images in the cloud and on premise.

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

A viewer asks about how their local docker container IP's, if behind NAT, can have issues with outside subnets at their company. I explain some of the ways even NAT won't solve IP routing for containers and how you can change your settings to different private subnets.

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6 out of 5
22789 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


11 hours on-demand video
23 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion