Search code examples
dockerdocker-swarmservice-discovery

Difference between Docker Swarm vs Swarm mode?


What difference between initialization swarm over this commands:

docker swarm init --advertise-addr <manager-ip>
docker -H <worker-ip> swarm join --token <worker-token>

And this one:

docker run swarm manage <consul-ip>
docker -H <worker-ip> run swarm join --advertise=<worker-ip> <consul-ip>

Why we need swarm image?


Solution

  • Docker Swarm (also Swarm classic) is fundamentally different from Swarm Mode. Native Swarm functionality will continue to be supported in Docker 1.12 release, this is done to preserve backward compatibility.

    Docker Swram (classic):

    • Separate from Docker Engine and can run as Container
    • Needs external KV store like Consul, etcd, Zookeeper

    Usage example:

    docker run swarm manage <consul-ip>
    docker -H <worker-ip> run swarm join --advertise=<worker-ip> <consul-ip>
    

    Swarm Mode (new, preferable):

    • Integrated inside Docker engine
    • No need of separate external KV store

    Usage example:

    docker swarm init --advertise-addr <manager-ip>
    docker -H <worker-ip> swarm join --token <worker-token>
    

    Source: Comparing Swarm, Swarmkit and Swarm Mode

    Great answer on another question like this one: The relation between “docker/swarm” and “docker/swarmkit”