Getting Started with Docker Swarm
Love using docker on a single machine and want to easily scale across multiple machines? This course will teach you about creating clusters and orchestrating containers with Docker Swarm.
What you'll learn
What do you do when a single, standalone Docker node no longer is sufficient? In this course, Getting Started with Docker Swarm, you’ll learn to scale beyond the limitations of a single machine while maintaining the simplicity of Docker and Docker Compose on a single node. First, you’ll bootstrap a multi-node cluster with just a few, simple docker commands. Next, you’ll discover how to deploy services and jobs with stack yaml files. Finally, you’ll learn how to inject config and sensitive secrets. When you’re finished with this course, you’ll have the skills and knowledge of Docker Swarm needed to orchestrate container workloads across any number of nodes.
Table of contents
- From Standalone to Multi-node 7m
- Initializing a Single Node Swarm with Docker Swarm Init 3m
- Cloning the Course Repo and Explaining the Multi-machine Vagrantfile 5m
- Vagrant Up m1 w1 - Auto-provision Two Ubuntu VMs with Docker Engine Running 1m
- Use the --advertise-addr Flag with Docker Swarm Init on Machines with Multiple NICs 5m
- Faster Node Management with Direct SSH Access - Leveraging Vagrant ssh-config 3m
- Transparent Node Management with SSH Based Docker Contexts 2m
- Docker Node ls + Seamless Docker Context Switching 2m
- Visualizing Docker Contexts to Simplify Multi-node Management 6m
- Joining Nodes Concisely with One-off Commands via Docker Contexts 4m
- Visualizing Cluster State with the Docker Swarm Visualizer (dockersamples/visualizer) Running in a Standalone Container 3m
- Joining Worker 2 with Real Time Web GUI and Terminal Monitoring 4m
- Simulating a Power Loss and Observing Node Status as Nodes Come Back Online 2m
- Joining a Second Manager Node 2m
- play-with-docker.com - How to Setup a Learning Lab with Free, Multi Node Clusters in the Clouds! 2m
- Promoting, Demoting, and Inspecting Nodes 3m
- Connecting to play-with-docker.com over SSH - And, Even Better, a SSH Based Docker Context! 2m
- Abstracting the Challenges of Multi-node Container Deployments with Services 4m
- Full Auto Swarm with Standalone Container Visualizer to Convert into a Service 2m
- Symmetry of Docker Container Run --help and Docker Service Create --help 3m
- Porting and Running a Visualizer Service 4m
- Docker Service Update --force to Change Placement without Changing Our Service 2m
- CLI Task Monitoring with Watch Docker Service ps --format 2m
- JSON and Custom Table Output with Docker Service ps --format 3m
- Docker Container Kill to Change Placement Too! 2m
- Docker Service Update --constraint-add node.role==manager 4m
- Docker Service Inspect : A First Look at Spec, PreviousSpec, and Convergence 4m
- Challenge: Deploy Your Favorite Web Service ... I'll Use NGINX 3m
- Docker Service Logs - Accessible Even for Containers Running on Other Nodes! 1m
- Task History Defaults to 5, Log Following, and Other Log Output Options 2m
- Swarm Networking Magic - Accessing Published Ports from Any Node! 1m
- Removing Services and Monitoring Removal with Swarm Scoped Events 3m
- Readable Docker Event History with JSON and jq 3m
- A Stack to Deploy Our weby NGINX Service 4m
- Deploying the weby Stack with Docker Stack Deploy 4m
- Updating a Deployed Service - Just Edit the Stack File and Push the "Deploy Button" Again! 3m
- How to Monitor All Tasks at the CLI 4m
- Understanding Reconciliation by Draining a Manager Node 4m
- SwarmKit Has One of the Best Ever Documented Codebases 4m
- SwarmKit's Code Is Itself Accessible - Check It Out! 2m
- The SwarmKit Repo Design Docs Are Filled with Architecture and Terms 2m
- Creating a Stack File to Deploy Our viz Service 3m
- Initializing a Pi Swarm in under 3 Minutes Using a Bare Metal Setup of 5 Raspberry PIs! 4m
- Troubleshooting a Failed Service on the Task Level with `Docker Stack ps --no-trunc` 4m
- Finding an Image's Supported Platforms on Docker Hub or via `hub-tool tag ls --platforms` 2m
- Changing Images to weshigbee/swarmgs2-viz: Just Edit the Stack File and Deploy! 6m
- Configuring a Scaled Service via a Stack File - echo-replica.yml 2m
- Using a Templated Task to Append {{.Node.Hostname}}-{{.Task.Slot}} To Service Container Hostnames 1m
- Deploying a Stack Based on weshigbee/swarmgs2-echo 1m
- echo's /containers Endpoint to List Its Docker Host's Containers - Akin to docker container ps -a 1m
- Forcing the Browser to Establish New Connections to Investigate Routing Implications 5m
- Deploy to Pull the Latest Image 2m
- Observe Routing with Curl and without Connection Reuse 3m
- The Role of the Ingress Overlay Network 2m
- Communicating Internally over Default and Custom Overlay Networks 3m
- Performing a DNS Lookup from One Container to Its Own Service - and We Find a New, Implicit Stack Network! 5m
- Docker Network Inspect's --verbose Flag Is Filled with Rich Details About the Ingress Network 4m
- Investigating How the echor_default Overlay Network Works for Internal Communication 6m
- dig servicename Returns our Service's VIP - whereas - dig tasks.servicename Returns Our Service's dnsrr List of IPs 3m
- Using dnsrr for Internal and Container to Container Service Discovery on Backend Overlay Networks 4m
- Introducing Service Mode with a Quick Look at Global Services 3m
- Switching a Drained Node to Active Triggers Reconciliation to Schedule Task(s) for Global Service(s) on the Now Active Node! 4m
- Scenario: Using Swarm Jobs to Stress Test Swarm Services via Backend Overlay Networks 4m
- Deploying Our sr Stack with a Service Exposing a Web App to Stress Test with a Job 5m
- Exploring How to Create Our First Global Job 4m
- Running Our First Job and Monitoring Progress 2m
- Viewing Job Output with Docker Service Logs JOBNAME 1m
- Listing Job Instances (aka Tasks) with Docker Service ps JOBNAME 3m
- A First Job Instance That Communicates over the User Defined Overlay Network to Load Test Our Service! 4m
- Validating Our Job Is Talking to Our Service over the sr_testers Overlay Network 4m
- Scaling Jobs down and Validating We Can Make Jobs That Can Send Successful Web Requests 3m
- Visualizing the Interactions in Our Next Load Test between Swarm Jobs and Swarm Services 1m
- Using Swarm Jobs to Test Swarm Services to Verify a Hypothesis About Scalability 7m
- Configs and Secrets Are Special Purpose Mounts! 2m
- Using an External Secret to Avoid Hardcoding Passwords in Stack Files 5m
- Docker exec'ing around Our MySQL Container to Learn About Secrets 4m
- Removing Secrets and an Intro to Updating Secrets with a Link to a Deeper Dive in the First Edition of This Course 3m
- Secrets and Configs Are Parallel Concepts - Secrets Are Merely Sensitive Configs 4m