Awesome Swarm
An awesome list of tools and info on Swarm Mode (SwarmKit)
Swarm (Swarm Mode, SwarmKit) is the simple orchestration and scheduling system built into Moby, Docker Engine, and Mirantis Container Engine (MCE). It is a distributed system that allows you to create and manage a cluster of container runtimes (nodes) and the container workloads running on them.
This Awesome List is maintained by @BretFisher and @s4ke. This is a curated list of working and awesome tools and resources for using Swarm. It is not an official list, but a community effort to help people find the best stuff for Swarm in 2023 and beyond.
Contents
- Recent News and Updates
- Official Main Resources
- Chat and Forums
- Community Tools
- Community Tutorials and Education
- Organisations Using Swarm
- RIP
- Contributing
- Maintainers
Recent News and Updates
- Mirantis - What's next for Swarm
- Mirantis - Kubernetes vs Swarm - These companies use both
- Mirantis - Committed to Swarm
- Mirantis - Announcing the 23.0 major release for Mirantis Container Runtime — and Moby
Official Main Resources
- Docker Swarm Docs
- Mirantis Swarm Homepage
- MCR - Mirantis Container Runtime Homepage - The Mirantis dockerd variant that supports Swarm Mode.
- Mirantis Docs - Search Swarm for the various docs related to Swarm orchestration.
- SwarmKit Repository - The upstream project that provides Swarm features to a container runtime.
- Swarm Stack File reference - Compose file v3 format that works in Swarm for "stack files".
Chat and Forums
- Discord - Cloud Native DevOps - Maintained by Bret Fisher and friends. Join the very active
#swarm
channel. - SwarmKit.org Forum - Maintained by Portainer's co-founder Neil Cresswell.
- Stack Overflow Swarm tag
Community Tools
Cluster Management
- Portainer - A management UI that allows you to control Docker hosts, Swarm clusters, and Kubernetes clusters.
- Swarmpit - Lightweight mobile-friendly Docker Swarm management UI.
- AWS Docker Swarm Terraform Module
- Swarmsible - Tooling to create and manage Docker Swarm clusters based on Ansible.
Extra Functionality
- Swarm Cronjob - By @crazy-max. Create jobs on a time-based schedule.
- Shepherd - Automatically update services whenever their image is refreshed.
- Swarm Sync - GitOps for Swarm.
- Dockersamples Swarm Visualizer - A basic web GUI visualizing a Swarm cluster. More of a concept and teaching UI than a production tool.
- docker-stack-deploy (docker-sdp) - Automatic config/secret rotation for Docker stacks.
- nothelm.py - Opinionated docker stack project tool with templating support.
- docker-stack-wait - Tool to wait for your docker stack deployments to finish.
- docker-swarm-proxy - CLI plugin to that allows to exec into services.
docker exec
for Swarm.
Volumes and Storage
Swarm previously only supported local volumes, NFS, and a limited set of Docker Engine Plugin drivers that supported Swarm Mode. Driver support has dwindled over time as vendors moved to Kubernetes. In 2023, with the Docker Engine v23.x release, Docker Engine and Swarm Mode gained the Container Storage Interface (CSI) standard. Existing CSI drivers will need to add Swarm support.
- CSI support issue tracking in 2023 - A GitHub repository tracking various storage drivers PRs and issues for Swarm CSI support in Docker/Moby v23+.
- GlusterFS - GlusterFS is a scale-out network-attached storage file system.
- Ceph - Ceph is a distributed object, block, and file storage platform.
- juicefs - JuiceFS is a distributed POSIX file system built on top of S3. It has a maintained Docker plugin.
- Portworx - Portworx is a container-native storage solution. It supports Swarm installs. Free for up to three nodes.
- NetApp Trident - A NetApp storage driver that has been known to work with Docker Engine and Swarm in the past. CSI Swarm support has been requested.
- Hetzner Cloud Docker Volume Plugin - Unofficial volume driver for Hetzner Cloud by @costela.
- Hetzner Cloud Volume CSI Driver - Hetzner Cloud Volume CSI Driver with experimental support for Docker Swarm.
Networking
- Swarm Ports - List and description of all the ports used by Swarm Mode (and the very old classic Swarm, if you're into that).
- Libnetwork Troubleshooting - Official Doc on using network diagnostic tools.
- Traefik Proxy - A reverse proxy and load balancer that makes deploying HTTP (and more) published services easy. Swarm Mode docs start here.
- Caddy Docker Proxy - Caddy based reverse proxy with automatic service discovery based on labels.
Monitoring
- docker-engine-events-exporter - Prometheus Exporter for Docker Engine Events.
- docker-engine-networks-exporter - Prometheus Exporter for additional network metrics such as usable ips.
- promswarm - Modernized version of Swarmprom, a great Prometheus/Grafana stack originally by @stefanprodan, now maintained by @neuroforgede.
Community Tutorials and Education
Courses and Videos
- Docker Mastery, with Kubernetes and Swarm - Via Docker Captain Bret Fisher. The most popular paid mega-course on Docker, Kubernetes, and Swarm. The link includes a coupon.
- Docker Swarm Mastery - Via Docker Captain Bret Fisher. The most popular paid course focusing on Docker Swarm (assumes you have basic Docker/Compose knowledge). The link includes a coupon.
- Docker Swarm Design and Production Tools from Bret Fisher at DockerCon - YouTube. DockerCon 2018. 40 minutes.
Articles and Sample Code
- Docker Swarm Rocks - Collection of tutorials and code samples.
- Vault + Swarm - Vault + Swarm Docker secrets plugin (proof of concept).
- dogvs.cat Sample Swarm Stacks - Sample Docker Swarm cluster stack of tools including Traefik.
- Swarm vs. Compose for Production - Only one host for a production environment. What to use: docker-compose or single node swarm?
- Cheat Sheet on Docker and Swarm 2022
- Podlike - Viktor Adam's idea on how you could link multiple containers together to emulate a Kubernetes pod.
- Operating Swarm - Useful tips for operating and troubleshooting Docker Swarm in production.
Organisations Using Swarm
Related Awesome Lists
While this list is focused on Docker Swarm resources, general resources such as ones for Docker or Docker Compose can be helpful. The following keeps track of related awesome lists focused on this.
- awesome-docker - A list of awesome Docker tools.
- awesome-compose - A list of awesome Docker Compose samples.
RIP
Honorable mentions of tools and information that are no longer maintained or supported. It may still work, but it's not being updated.
- RexRay - A container storage orchestration engine.
Contributing
This list thrives on contributions from the community. The Maintainers can't do it alone. We need Swarm fans to help us find the best Swarm resources.
Want to contribute? Please read the contribution guidelines. You can also ask questions in the GitHub Discussions, or our Discord Server #swarm channel.
Maintainers
We're looking for more maintainers. Make some PRs to help, then LMK in Discussions, Twitter, or Discord (above) if you'd like to get involved in making a better community for Swarm.