This content is part of the Buyer's Guide: Choose the best application modernization services for your business

Buyer's Guide

Browse Sections

Orchestrate and manage containers using the Docker Swarm service

The Docker Swarm service is an open source system that provides organizations utilizing Docker containers with tools for container orchestration, clustering and scheduling.

Docker Swarm is an open source container orchestration platform that provides native clustering capabilities for Docker containers, enabling businesses to turn a group of Docker engines into a single virtual Docker engine. By taking advantage of these pooled resources, organizations can scale out their applications as if they were running on a single computer.

How does the system help organizations run containers?

The Docker Swarm service works with the standard Docker API, which means any tool that already communicates with a Docker daemon can use Docker Swarm to transparently scale to multiple hosts. In addition to the Docker client itself, other supported tools include Deis, Docker Compose, DockerUI, Dokku, Drone, Flynn, Jenkins, Krane and Shipyard. As a Docker-native solution, businesses can use Docker Networking, Docker Volumes and additional plug-ins through their respective Docker commands via Swarm.

The Docker Swarm service also offers flexible container scheduling. The built-in scheduler includes several filters, such as node tags, affinity and strategies like spread, binpack and more. These filters assign containers to the underlying nodes so users can maximize performance and resource utilization. Users can ensure failover and high availability by creating multiple Swarm masters and specifying policies on leader election in case the primary master experiences a failure. Docker Swarm also includes error alerts when a node fails to join a cluster.

To begin using Docker Swarm for container management, the best method is to use Docker Machine. From Docker Machine, users can quickly install the Docker Swarm service on a cloud provider or inside their own data center. If users have Oracle VirtualBox installed on their local machine, they can quickly build and explore Docker Swarm in their local environment. This method automatically generates a certificate to secure the cluster.

Administrators and programmers who are more experienced with Docker can also opt to use the manual method. The first step to creating a Swarm cluster on the network is to pull the Docker Swarm image. Then, Docker can be used to configure the Swarm manager and all the nodes to run Docker Swarm. This requires opening a TCP port on each node for communication with the Swarm manager, installing Docker on each node and creating and managing TLS certificates to secure the cluster.

Docker Swarm containerization visual
Docker Swarm abstracts host resources into a shared pool for Docker containers.

Who benefits from using the Docker Swarm service?

The system is production-ready and tested to scale up to 1,000 nodes and 50,000 containers with no performance degradation in spinning up incremental containers onto the node cluster. The system is best used by those familiar with container-managed development and Docker fundamentals.

The Docker Swarm service gives businesses the freedom to configure more of their own infrastructure. For example, users can easily plug in a more powerful scheduling tool (such as the Mesos or Kubernetes backend) rather than use the included system while still using the Docker client for a consistent developer experience. To find nodes in a cluster, the Docker Swarm service can use a hosted discovery tool (such as Consul, etcd or ZooKeeper) or static file depending on what is best suited for the environment.

How is the software licensed and priced?

Docker Swarm is an open source container orchestration platform that is still under active development. Docker provides a number of channels for communication, including the issue tracker on Github to report bugs or file feature requests and the #docker-swarm channel on Internet Relay Chat to talk about the project with people in real-time. Github can also be used to contribute code or documentation changes.

Next Steps

What features should you look for when choosing a container management system?

What is the best app modernization approach for your business?

What are the benefits of development with Docker?

Dig Deeper on Container orchestration