Docker Swarm Mastery: DevOps Style Cluster Orchestration
Welcome to the most complete and up-to-date course for learning SwarmKit and using Docker Swarm end-to-end, from development and testing, to deployment and production. Discover how easy and powerful Docker Swarm Mode multi-host orchestration can be for your applications. This course is taught by a Docker Captain and DevOps consultant who’s also a bestselling Udemy author.
Are you just starting out with container orchestration? Perfect. This course starts out assuming you’re new to Swarm and starts with how to install and configure it.
Or: Are you using Docker Swarm now and need to deal with real-world problems? I’m here for you! See my production topics around storing secrets, controlling rolling updates, events, healthchecks, and more.
BONUS: This course comes with exclusive access to a Slack Chat and Weekly live Q&A with me!
Some of the many cool things you’ll do in this course:
Lock down your apps in private networks that only expose necessary ports
Create a 3-node Swarm cluster locally and (optionally) in the cloud
Use Virtual IP’s for built-in load balancing in your cluster
Use Swarm Secrets to encrypt your environment configs, even on disk
Deploy container updates in a rolling update HA 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 Swarm in your daily ops and sysadmin roles
Build multi-node Swarm clusters and deploying H/A containers
Protect your keys, TLS certificates, and passwords with encrypted secrets
Lead your team into the future with the latest Docker Swarm orchestration skills!
Why should you learn from me? Why trust me to teach you the best ways to use Docker Swarm?
I’m A Practitioner. Welcome to the real world: I’ve got more than 20 years of sysadmin and developer experience, over 30 certifications, and have been using Docker and the container ecosystem for myself and my consulting clients since Docker’s early days. My clients use Docker Swarm in production. With me, you’re learning from someone who’s run hundreds of containers across dozens of projects and organizations.
I’m An Educator. With me, you’re 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, and Linux Open Source Summit.
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 Swarm 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 Swarm 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, Docker Mastery Course Student
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.
Thanks so much for considering this course. Come join me and thousands of others in this course (and my others) for learning one of the coolest pieces of tech today, Docker Swarm!
Introduction and Course Overview
Basic overview of the course Sections and where to start based on your experience level.
A quick hands-on preview of what you'll be doing in this course. Don't worry, I'll explain all the details of what you're doing in this video throughout the course.
Learn a bit about Bret and this community of DevOps and Docker fans.
Course Resources and Tools
All the code, slides, and commands used in this course.
Use our Slack community to get help throughout the course, and talk with other Docker users.
Join Bret on YouTube Live every week for getting questions answered about Docker Mastery and all things containers.
This course expects you to have 17.09 or newer on your local machine (along with docker-compose and docker-machine). We'll use those tools to build and manage Swarms.
Swarm Intro and Creating a 3-Node Swarm Cluster
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.
Note that 18.09.0 release has a bug in docker-machine with Swarm ports not working.
You'll build a 3-host Swarm cluster so we can scale our apps out for high-availability.
Throughout this course, the sample app "Swarm Visualizer" will help you see visually where containers are running.
Swarm Basic Features and How to Use Them In Your Workflow
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.
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.
Swarm App Lifecycle
Understand how to use "simulated" secrets with the docker-compose CLI.
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.
Learn key features of the service update command and when to use it for updating your containers while the are live.
Controlling Container Placement in Swarm
Learn about different ways Swarm lets you control where your containers run.
Use metadata matching to control which node your service tasks run on.
Learn how Global is different from the default Replicated mode, and its uses.
Ensure your containers are spread out across architecture values like racks, zones, or datacenters.
Learn how to set nodes to various availability options, which will affect if containers can run on them.
Learn about setting minimum and maximum memory and cpu resources per container, and how that affects service task placement.
A quick refresher of what you learned about container placement in this Section.
Operating Docker Swarm in Production
Learn how to easily see all the logs for a service from multiple containers at once.
Hands-on with the powerful events command for seeing all the actions Swarm is taking in the background.
Add your app configs to Swarm Raft and easily use them in containers.
Limit Downtime with Rolling Updates, Healthchecks and Rollbacks
Get a quick overview of all the things you'll learn in this Section about "Day 2 Operations" around updating services.
Learn about the details of "behind the scenes" of Swarm service updates. Also learn tools we'll use in this section for testing and learning.
At CLI, lets test a real rolling update and see how new connections are handled during container replacement using common industry tools.
Learn the step-by-step actions Swarm is taking on your app when you ask it to update a Service. These steps are critical to know before going production!
Learn your next Assignment: doing your own updates with custom options.
Watch me walk through the Assignment activities.
Learn how important healthchecks are to rolling updates.
Use the CLI to test updates with and without healthchecks and see the real difference.
Get to work adding healthchecks to services and learning with hands on.
Watch me walk through the Assignment activities.
Learn about rollbacks, your fail-safe feature for keeping failed updates from killing your services.
Use the CLI to test various rollback scenarios including auto-rollback when healthchecks are used in updates.
Get your assignment instructions.
Watch me walk through the Assignment activities.
Section Review for Service Updates
After I got back from DockerCon in December 2018, I thought I'd share what I see going on with container orchestration without all the hype. I talked to lots of people at DockerCon about what they use and why.
DevOps and Docker Clips
Someone asks about image pruning while a Swarm service is in the middle of deployment, and how they've experienced failed containers. I reply with the details of what's going on in specific steps of a Service creation and deployment, and how the prune command could interfere.
I answer a question about how to control docker and other containers like a nginx proxy from inside a separate container.
I give a quick answer on how you might design MongoDB and other database servers for auto clustering inside Docker
In March of 2019 I talked with Michael about the new "docker-app" experimental tool. This clip talks about why it exists, and how to use it. In April 2019 Docker released a beta of 19.03 that includes "docker-app" as a plugin to the standard docker CLI, as "docker app", but most other features of this tool stay the same. We also talk about the standard behind this tool, CNAB.
Docker Captain Michael Irwin and I go over various storage options for persistent volumes in Swarm, and how you need to think about storage for Docker.
Docker Captain Michael Irwin and I discuss backups of databases in a container cluster like Docker Swarm.
Extra's, Common Questions, and Resources
Videos on "Evolving your Infrastructure and Processes" with Docker
Learn how the raft protocol works to keep modern orchestrators in sync, and how to recover from failures.