We may earn an affiliate commission when you visit our partners.
Course image
Bret Fisher and Docker Captain Program

Proud to be a

Now also a

Read more

Proud to be a

Now also a

2023 Update: New CI examples with 18 lectures showing you how to automate Docker and Kubernetes in GitHub Actions, including vulnerability scanning, advanced image building, multi-platform builds, and more. Kubernetes sections were also updated to reflect CLI updates and 5 new videos on inspecting resources.

2022 Update: Refreshed install and config videos, and more support for Apple Silicon (M1 arm64) and Raspberry Pi's.

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, Discord Chat server, and live monthly YouTube Q&As 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" - Student Udemy Review

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, Discord, 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 are Slack and Discord servers with 50k+ 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 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 course's resources.

  • Join me on weekly DevOps Live streams and demos on YouTube Live.

  • Tons of reference links to supplement this content.

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

Enroll now

What's inside

Learning objectives

  • 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 (50,000 members!) and monthly live q&a.
  • Gain the skills to build development environments with your code running in containers.
  • Build swarm and kubernetes clusters for server deployments!
  • Setup github actions to auto-build your images and scan for security vulnerabilities
  • 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.

Syllabus

Learn and try the very basics of Docker, before we get in depth.

If you're totally new to Docker, this breaks down the three major features that created an entire container ecosystem.

Read more

Before we learn how to install Docker locally, let's just try a few commands in Docker's cloud learning tool: Play With Docker.

Why did Docker need to exist? What are the big problems it solves for devs and ops?

Get an overview of the material we will cover and the resources you'll need for this course.

High-level overview of sections and lectures.

Getting Course Resources (GitHub Repo)
Course Chat with Students Learning Containers

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

Common Questions in This Course

Ensure you have the latest docker installed on Windows 7, 8, 10, macOS, and Linux

Why is Docker sometimes complex to install locally? I'll explain why.

Quick links and descriptions to get you started fast.

Details on Docker Desktop and supporting tools on Windows.

Details on Docker Desktop and supporting tools on macOS.

Details on Docker Desktop and supporting tools on a Linux Desktop.

Details on Docker Desktop and supporting tools on a Linux server.

Some basics on Visual Studio Code and which extensions (plugins) will help in this course.

Note that Docker Inc. has changed many tool names over the years. Here's some quick info.

Learn the basics of managing containers.

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

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

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

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

"Windows Containers" were born in 2016, and allow native .exe support in containers, but are they worth it?

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

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

Let's review this section and help solidify your knowledge with a quiz.

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

Use MariaDB for better compatibility with commands in this course.

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.

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.

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

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

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

A few questions on previous lecture content to help you retain the knowledge.

Assignment to use container shells to test networking between them.

Changes To Upcoming Assignment

Assignment to test DNS alias naming on multiple containers.

Learn about images, the building blocks of containers and how to create and manage them.

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

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

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

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

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

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

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

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

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

Learn how to manage your important data in containers, including databases. Also learn how to edit code life on your local machine while running it in a container.

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

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

Shell Differences for Path Expansion

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

How data exists past and beyond the container

Database Passwords in Containers
Updated Postgres Version for Next Video Assignment

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

Assignment Answers: Update for Recent Postgres Changes
File Permissions Across Multiple Containers

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

Learn how to build and develop multi-app services with a single config file and manage them locally.

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

Compose V2

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

Version Dependencies in Multi-Tier Apps
Compose Assignments

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

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

Using MariaDB rather than PostgreSQL

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

Learn the basics of creating a swarm locally, then on VM's, for using throughout this course.

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

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

UI Change For Service Create/Update
Use Multipass to create Docker, Swarm, and K8s VMs

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

Learn the ins and outs of Swarm Services, Networking, and more.
Sections Requirements for Swarm, Drupal, and Postgres

Learn how Swarm can seamlessly let containers talk between hosts.

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

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

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

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

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

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

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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Well-suited for those with no Docker knowledge, as it starts with the basics and builds a foundation
Interactively demonstrates concepts with live chat group and monthly live Q&A
Provides hands-on experience in building development environments and deploying apps to Kubernetes
Guides learners through setting up GitHub Actions for automated image building and security scanning
Thoroughly covers Docker and Kubernetes basics and advanced topics in a comprehensive manner
Led by Bret Fisher, an award-winning Docker Captain and DevOps consultant with extensive experience

Save this course

Save Docker Mastery: with Kubernetes +Swarm from a Docker Captain to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Docker Mastery: with Kubernetes +Swarm from a Docker Captain with these activities:
Identify and connect with a Docker expert
Enhance learning by connecting with an erfahren Docker professional.
Show steps
  • Attend Docker meetups or online events to meet potential mentors.
  • Reach out to individuals on LinkedIn or other professional networking platforms.
  • Ask for guidance and support in specific areas of Docker technology.
  • Schedule regular check-ins to discuss progress and address questions.
Review Linux commands
Review basic Linux commands to strengthen foundational understanding and improve navigation within Docker.
Browse courses on Linux Commands
Show steps
  • Review basic file manipulation commands (e.g., cp, mv, rm).
  • Practice navigating the file system using cd.
  • Refresh knowledge of permissions and file ownership using ls -l.
  • Review common text manipulation commands (e.g., cat, grep, sed).
Follow online tutorials on Docker Swarm
Gain practical experience with Docker Swarm through guided tutorials.
Browse courses on Docker Swarm
Show steps
  • Search for online tutorials on Docker Swarm.
  • Select a tutorial that provides a comprehensive overview of the topic.
  • Follow the steps in the tutorial to set up a Docker Swarm cluster.
  • Deploy and manage containers on the cluster.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve Docker challenges on Docker Labs
Enhance problem-solving skills and reinforce Docker concepts through interactive challenges.
Browse courses on Docker CLI
Show steps
  • Register for a Docker Labs account.
  • Select a challenge that aligns with your current learning objectives.
  • Attempt to solve the challenge using the Docker CLI and relevant commands.
  • Review the solution and identify areas for improvement.
Build a simple CRUD application with Docker Compose
Apply Docker Compose concepts by creating a functional multi-container application.
Browse courses on Docker Compose
Show steps
  • Define the application components and their relationships using Docker Compose.
  • Create Dockerfiles for each component, specifying the necessary dependencies and configurations.
  • Implement the database and application logic within the containers.
  • Test the application's functionality and ensure proper communication between containers.
Write a blog post about Docker networking
Solidify understanding of Docker networking by explaining it in a blog post.
Browse courses on Docker Networking
Show steps
  • Research and gather information on Docker networking concepts.
  • Structure the blog post with a clear introduction, body, and conclusion.
  • Explain the different network modes and their implications.
  • Describe how to publish ports and enable communication between containers.
Read 'Docker Deep Dive'
Gain in-depth knowledge of Docker concepts and best practices by reading a comprehensive reference book.
View Docker Deep Dive on Amazon
Show steps
  • Read the introductory chapters to understand Docker fundamentals.
  • Study the sections on container management and networking to enhance your understanding.
  • Review the chapters on Docker Compose and Docker Swarm for insights into managing complex container environments.
  • Refer to the book as a resource throughout the course for further clarification and deeper understanding.

Career center

Learners who complete Docker Mastery: with Kubernetes +Swarm from a Docker Captain will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps Engineers are responsible for overseeing the systems development life cycle (SDLC), bridging the gap between development and operations teams. With a deep understanding of both software development and IT operations, DevOps Engineers can automate and streamline the SDLC, resulting in faster and more efficient software delivery. This course can play a key role in your success as a DevOps Engineer by providing you with a solid understanding of Docker, Kubernetes, and Swarm. You'll learn how to build, deploy, and manage containerized applications, and how to use these technologies to improve the efficiency and reliability of your software delivery process.
Software Developer
Software Developers are responsible for designing, developing, and maintaining software applications. They work closely with other team members, including DevOps Engineers, to ensure that software is delivered on time and within budget. This course can help you become a more effective Software Developer by providing you with a deep understanding of Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized applications, and how to use them to improve the efficiency and reliability of your software delivery process.
Systems Administrator
Systems Administrators are responsible for maintaining and managing computer systems and networks. They work to ensure that systems are running smoothly and efficiently, and that data is secure and protected. This course can be useful for Systems Administrators who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to manage containerized applications, and how to use them to improve the efficiency and reliability of your systems.
Cloud Architect
Cloud Architects are responsible for designing and managing cloud computing solutions. They work with clients to understand their business needs and then design and implement cloud solutions that meet those needs. This course can be useful for Cloud Architects who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy cloud-native applications, and how to use them to improve the efficiency and reliability of your cloud solutions.
DevOps Manager
DevOps Managers are responsible for leading and managing DevOps teams. They work with team members to ensure that software is delivered on time and within budget, and that it meets the needs of the business. This course can provide you with the skills and knowledge you need to be a successful DevOps Manager. You'll learn how to use Docker and Kubernetes to build and deploy containerized applications, and how to use these technologies to improve the efficiency and reliability of your software delivery process.
Product Manager
Product Managers are responsible for managing the development and launch of new products. They work with team members to define the product vision, and then work to ensure that the product is developed and launched on time and within budget. This course can be useful for Product Managers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized applications, and how to use them to improve the efficiency and reliability of your product development process.
Site Reliability Engineer
Site Reliability Engineers are responsible for ensuring the reliability and performance of websites and web applications. They work to identify and fix problems that can affect the performance or availability of websites, and they also work to improve the overall reliability of the website infrastructure. This course can be useful for Site Reliability Engineers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized web applications, and how to use them to improve the reliability and performance of your website infrastructure.
Technical Program Manager
Technical Program Managers are responsible for managing the technical aspects of software development projects. They work with team members to define the project scope, and then work to ensure that the project is completed on time and within budget. This course can be useful for Technical Program Managers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized applications, and how to use them to improve the efficiency and reliability of your software development projects.
Software Architect
Software Architects are responsible for designing and developing the architecture of software systems. They work with team members to define the system requirements, and then work to ensure that the system is designed and developed in a way that meets those requirements. This course can be useful for Software Architects who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized applications, and how to use them to improve the efficiency and reliability of your software systems.
Data Engineer
Data Engineers are responsible for designing, building, and maintaining data pipelines. They work with team members to define the data requirements, and then work to ensure that the data is collected, processed, and stored in a way that meets those requirements. This course can be useful for Data Engineers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized data pipelines, and how to use them to improve the efficiency and reliability of your data pipelines.
Cloud Security Engineer
Cloud Security Engineers are responsible for ensuring the security of cloud computing environments. They work with team members to define the security requirements, and then work to ensure that the cloud environment is configured and managed in a way that meets those requirements. This course can be useful for Cloud Security Engineers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy secure containerized applications, and how to use them to improve the security of your cloud environment.
IT Manager
IT Managers are responsible for managing the IT infrastructure of an organization. They work with team members to define the IT requirements, and then work to ensure that the IT infrastructure is configured and managed in a way that meets those requirements. This course can be useful for IT Managers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized applications, and how to use them to improve the efficiency and reliability of your IT infrastructure.
Network Engineer
Network Engineers are responsible for designing, building, and maintaining computer networks. They work with team members to define the network requirements, and then work to ensure that the network is designed and built in a way that meets those requirements. This course can be useful for Network Engineers who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized network applications, and how to use them to improve the efficiency and reliability of your network infrastructure.
Security Architect
Security Architects are responsible for designing and developing the security architecture of an organization. They work with team members to define the security requirements, and then work to ensure that the organization's systems and networks are designed and configured in a way that meets those requirements. This course can be useful for Security Architects who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy secure containerized applications, and how to use them to improve the security of your organization's systems and networks.
Data Analyst
Data Analysts are responsible for collecting, analyzing, and interpreting data. They work with team members to define the data requirements, and then work to ensure that the data is collected, processed, and analyzed in a way that meets those requirements. This course may be useful for Data Analysts who want to learn more about Docker and Kubernetes. You'll learn how to use these technologies to build and deploy containerized data analysis pipelines, and how to use them to improve the efficiency and reliability of your data analysis pipelines.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Docker Mastery: with Kubernetes +Swarm from a Docker Captain.
Provides a more technical, in-depth view of Docker, including chapters on Docker Swarm and Docker networking.
Provides a comprehensive overview of Kubernetes, including chapters on deployment strategies, cluster management, and troubleshooting.
Provides a comprehensive overview of Kubernetes, covering topics such as cluster architecture, deployment strategies, and troubleshooting.
Provides a practical guide to container security, covering topics such as image scanning, network security, and incident response.
Provides a practical guide to using Docker in various real-world scenarios, such as building and deploying web applications and managing microservices.
Provides a practical guide to using Docker for developers, covering topics such as creating and managing containers, building and deploying applications, and troubleshooting.
Provides a practical guide to using Docker in a DevOps environment, covering topics such as continuous integration, continuous delivery, and automated testing.
Provides a gentle introduction to Kubernetes, covering topics such as creating and managing clusters, deploying applications, and troubleshooting.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Docker Mastery: with Kubernetes +Swarm from a Docker Captain.
Kubernetes Mastery: Hands-On Lessons From A Docker Captain
Most relevant
Docker for Node.js Projects From a Docker Captain
Most relevant
Docker Swarm Mastery: DevOps Style Cluster Orchestration
Most relevant
Docker - SWARM - Hands-on - DevOps
Most relevant
Managing Sitecore Docker Containers
Most relevant
Fundamentals of Docker and Kubernetes for .NET 5...
Most relevant
Docker and Kubernetes: The Complete Guide
Most relevant
Docker - Introducing Docker Essentials, Containers, and...
Most relevant
DevOps MasterClass 2024: Terraform Kubernetes Ansible...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser