Docker Mastery: The Complete Toolset From a Docker Captain
4.9 (95 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
946 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Docker Mastery: The Complete Toolset From a Docker Captain to your Wishlist.

Add to Wishlist

Docker Mastery: The Complete Toolset From a Docker Captain

v17.03 Latest! Learn to build, compose, deploy, and manage containers from local development to HA clusters in the cloud
4.9 (95 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
946 students enrolled
Last updated 4/2017
Current price: $19 Original price: $200 Discount: 90% off
30-Day Money-Back Guarantee
  • 6 hours on-demand video
  • 6 Articles
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • How to use Docker and Compose on your machine for better software building and testing.
  • Build a fancy multi-node Swarm cluster for production deployments!
  • Skills to build advanced development environments with your code running in Containers.
  • Update and change your Swarm Services without downtime using blue/green deploys.
  • Hand's-on with best practices for making Dockerfiles and Compose files like a Pro!
  • Experience configuring logging and monitoring for Docker Swarm.
  • Configure security options to lock down your container's custom needs.
  • Understand the new Windows Containers, and try your hand at ARM Containers.
View Curriculum
  • No paid software required - Just install your favorite text editor and browser!
  • Local admin access to install Docker for Mac/Windows/Linux.
  • Understand terminal or command prompt basics.
  • Linux basics like shells, SSH, and package managers. (tips included to help newcomers!)
  • Know the basics of creating a server in the cloud (on any provider). (tips included to help newcomers!)
  • Understand the basics of web and database servers. (how they typically communicate, IP's, ports, etc.)

Be ready for the Dockerized future, where nearly all software is developed and deployed in containers. 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 a Docker Captain and 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, blue/green, and more.

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 DevOps 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, and lived to tell the tale.
  • 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 hundreds of people on using Docker in workshops, conferences, meetups, and one-on-one. See me teach at events like DockerCon, O'Reilly Velocity, Revolution, and Strange Loop. 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 on Docker and Code for America. I help online: usually in Slack, Gitter, Twitter, and IRC for Docker and other DevOps topics, 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

Giving Back: 3% 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 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

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 images based on GitHub commits
  • Create your own image registry
  • Use Swarm Secrets to encrypt your environment configs, even on disk
  • Deploy container updates in a blue/green deployment design
  • Create the config utopia of a single YAML file 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.
  • Tons of reference links to supplement this content.
  • Updates to content as Docker changes their features on these topics.


Course Launch Notes: (3/31/2017) Today this course launches! Whew. More sections are coming as I finish editing them. Adding in April/May:

  • Section 7: Container Registries: Image Storage and Distribution
  • Section 8: Level Up Your Images and Containers For More Complex Requirements
  • Section 9: Application Design, CI/CD and Developer Workflows
  • Section 10: Advanced Networking: When The Defaults Aren't Enough
  • Section 11: Operating Docker and Swarm in Production
  • Maybe more...
Who is the target audience?
  • Software developers, sysadmins, IT pros, and operators at any skill level.
  • Anyone who makes, deploys, or operates software on servers.
Curriculum For This Course
Expand All 61 Lectures Collapse All 61 Lectures 06:11:08
Course Introduction and Resources
8 Lectures 10:07

High level overview of sections and lectures.

Preview 03:25

Learn a bit about Bret.

Preview 02:08

Getting Course Resources (GitHub Repo)

Installing Docker

Code or Text Editor for Docker and Compose files

Terminal Emulator and Shell for Docker CLI

Course Chat Room

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.

Docker Version Format Change in Early 2017
Creating and Using Containers Like a Boss
15 Lectures 01:23:42

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

Check Our Docker Install and Config

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

Starting a Nginx web server

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

Debrief: What Happens When We Run a Container

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

Container VS. VM: It's Just a Process

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

Assignment: Manage Multiple Containers

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

Assignment Answers: Manage Multiple Containers

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

What's Going On In Containers: CLI Process Monitoring

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.

Preview 10:45

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.

Docker Networks: Concepts for Private and Public Comms in Containers

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

Docker Networks: CLI Management of Virtual Networks

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

Docker Networks: DNS and How Containers Find Each Other

Assignment to use container shells to test networking between them.

Assignment: Using Containers for CLI Testing

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

Assignment Answers: Using Containers for CLI Testing

Assignment to test DNS alias naming on multiple containers.

Assignment: DNS Round Robin Test

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

Assignment Answers: DNS Round Robin Test
Container Images, Where To Find Them and How To Build Them
9 Lectures 01:06:20

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

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

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

The Mighty Hub: Using Docker Hub Registry Images

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

Images and Their Layers: Discover the Image Cache

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

Image Tagging and Pushing to Docker Hub

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

Building Images: The Dockerfile Basics

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

Building Images: Running Docker Builds

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

Building Images: Extending Official Images

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

Assignment: Build Your Own Dockerfile and Run Containers From It

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

Assignment Answers: Build Your Own Dockerfile and Run Containers From It
Container Lifetime & Persistent Data: Volumes, Volumes, Volumes
7 Lectures 34:14

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

Container Lifetime & Persistent Data

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

Persistent Data: Data Volumes

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

Persistent Data: Bind Mounting

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

Assignment: Database Upgrades with Named Volumes

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

Assignment Answers: Database Upgrades with Named Volumes

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

Assignment: Edit Code Running In Containers With Bind Mounts

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

Assignment Answers: Edit Code Running In Containers With Bind Mounts
Making It Easier with Docker Compose: The Multi-Container Tool
7 Lectures 55:36

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

Docker Compose and The docker-compose.yml File

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

Trying Out Basic Compose Commands

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

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

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

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

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

Preview 09:20

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

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

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

Assignment Answers: Compose For Run-Time Image Building and Multi-Container Dev
Docker Services and The Power of Swarm: Built-In Orchestration
15 Lectures 02:01:22

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

Swarm Mode: Built-In Orchestration

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

Preview 12:16

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

Creating a 3-Node Swarm Cluster

Learn how Swarm can seamlessly let containers talk between hosts.

Scaling Out with Overlay Networking

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

Scaling Out with Routing Mesh

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

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

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

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

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

Swarm Stacks and Production Grade Compose

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

Secrets Storage for Swarm: Protecting Your Environment Variables

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 in Swarm Services

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

Using Secrets with Swarm Stacks

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

Using Secrets With Local Docker Compose

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

Assignment: Create A Stack with Secrets and Deploy

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

Assignment Answers: Create A Stack with Secrets and Deploy

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.

Full App Lifecycle: Dev, Build and Deploy With a Single Compose Design
About the Instructor
Bret Fisher
4.9 Average rating
87 Reviews
946 Students
1 Course
DevOps Sysadmin and Docker Captain

Hey, thanks for learning about me. I'm a freelance DevOps and Docker consultant, trainer, speaker, and Open Source volunteer working from Virginia Beach, VA.

I've been a cloud and datacenter ops/sysadmin for 20 years. Lately, I help teams Dockerize their apps and systems, and improve their speed of deployment, resiliency, metrics, and awareness. All that DevOps-y stuff.

I'm also a Docker Captain and Code for America Brigade Captain. I run several monthly meetups, speak at conferences, and love helping others. I'm obsessed with containerizing any app I see, and I'll likely talk your ear off about it next time we meet.

I sometimes develop in Node.js, Bash, and general web, usually for open source. 

When not working, I CrossFit, surf a little, geekout in our awesome local dev community in Virginia Beach, and travel with my Wife. We spend our time trying to figure out how to "live deliberately" as Thoreau would say.

Docker Captain Program
4.6 Average rating
149 Reviews
3,470 Students
2 Courses

Courses with this co-author signify that the primary author is a verified Docker Captain with Docker Inc.

Docker Captain is a distinction that Docker awards select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. Captains are Docker ambassadors (not employees) and their commitment to sharing their expertise has a huge impact on the Docker community – whether they are blogging, writing books, speaking, running workshops, creating tutorials and classes, offering support in forums, or organizing and contributing to local events – they help make Docker’s mission of democratizing technology possible.