Swarm allows multiple Docker hosts to be clustered together into a single virtual Docker host. It provides features like scheduling, rescheduling on failure, high availability with multiple masters, and service discovery. To set up a Swarm cluster, run the Swarm manager container on one host and restart the Docker daemons on the other hosts with arguments to join the cluster. An example voting app microservices demo shows how to deploy an application across a Swarm cluster.