From those commands, we can see that `manager1` is both at the status
`reachable` as a manager and `ready` as a worker.
An `unreachable` health status means that this particular manager node is unreachable
from other manager nodes. In this case you need to take action to restore the unreachable
manager:
- Restart the daemon and see if the manager comes back as reachable.
- Reboot the machine.
- If neither restarting or rebooting work, you should add another manager node or promote a worker to be a manager node. You also need to cleanly remove the failed node entry from the Manager set with `docker node demote <id-node>` and `docker node rm <id-node>`.
Alternatively you can also get an overview of the cluster health with `docker node ls`:
```bash
# From a Manager node
docker node ls
ID HOSTNAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS
1mhtdwhvsgr3c26xxbnzdc3yp node05 Accepted Ready Active
516pacagkqp2xc3fk9t1dhjor node02 Accepted Ready Active Reachable
9ifojw8of78kkusuc4a6c23fx * node01 Accepted Ready Active Leader
ax11wdpwrrb6db3mfjydscgk7 node04 Accepted Ready Active
bb1nrq2cswhtbg4mrsqnlx1ck node03 Accepted Ready Active Reachable
di9wxgz8dtuh9d2hn089ecqkf node06 Accepted Ready Active
```
## Manager advertise address
When initiating or joining a Swarm cluster, you have to specify the `--listen-addr`
flag to advertise your address to other Manager nodes in the cluster.
We recommend that you use a *fixed IP address* for the advertised address, otherwise
the cluster could become unstable on machine reboot.
Indeed if the whole cluster restarts and every Manager gets a new IP address on
restart, there is no way for any of those nodes to contact an existing Manager
and the cluster will stay stuck trying to contact other nodes through their old address.
While having dynamic IP addresses for Worker nodes is acceptable, Managers are
meant to be a stable piece in the infrastructure thus it is highly recommended to
deploy those critical nodes with static IPs.
## Recover from disaster
Swarm is resilient to failures and the cluster can recover from any number
of temporary node failures (machine reboots or crash with restart).
In a swarm of `N` managers, there must be a quorum of manager nodes greater than
50% of the total number of managers (or `(N/2)+1`) in order for the swarm to
process requests and remain available. This means the swarm can tolerate up to
`(N-1)/2` permanent failures beyond which requests involving cluster management
cannot be processed. These types of failures include data corruption or hardware
failures.
Even if you follow the guidelines here, it is possible that you can lose a
quorum of manager nodes. If you can't recover the quorum by conventional
means such as restarting faulty nodes, you can recover the cluster by running
`docker swarm init --force-new-cluster` on a manager node.