github.com/dkerwin/nomad@v0.3.3-0.20160525181927-74554135514b/website/source/intro/vs/swarm.html.md (about) 1 --- 2 layout: "intro" 3 page_title: "Nomad vs. Docker Swarm" 4 sidebar_current: "vs-other-swarm" 5 description: |- 6 Comparison between Nomad and Docker Swarm 7 --- 8 9 # Nomad vs. Docker Swarm 10 11 Docker Swarm is the native clustering solution for Docker. It provides 12 an API compatible with the Docker Remote API, and allows containers to 13 be scheduled across many machines. 14 15 Nomad differs in many ways with Docker Swarm, most obviously Docker Swarm 16 can only be used to run Docker containers, while Nomad is more general purpose. 17 Nomad supports virtualized, containerized and standalone applications, including Docker. 18 Nomad is designed with extensible drivers and support will be extended to all 19 common drivers. 20 21 Docker Swarm provides API compatibility with their remote API, which focuses 22 on the container abstraction. Nomad uses a higher-level abstraction of jobs. 23 Jobs contain task groups, which are sets of tasks. This allows more complex 24 applications to be expressed and easily managed without reasoning about the 25 individual containers that compose the application. 26 27 The architectures also differ between Nomad and Docker Swarm. 28 Nomad does not depend on external systems for coordination or storage, 29 is distributed, highly available, and supports multi-datacenter 30 and multi-region configurations. 31 32 By contrast, Swarm is not distributed or highly available by default. 33 External systems must be used for coordination to support replication. 34 When replication is enabled, Swarm uses an active/standby model, 35 meaning the other servers cannot be used to make scheduling decisions. 36 Swarm also does not support multiple failure isolation regions or federation. 37