The "Error response from daemon: Timeout was reached before node joined." failure happens when the ‘manager’ docker machine is not active due to which  the new node machine will not be able to join the swarm cluster.  To fix this:  Step 1: Check for the active machine hosts as:  $ docker-machine active  Step 2: Activate the ‘manager’ machine as:  $ eval $(docker-machine env manager)
$ docker-machine active  Step 3: Get the swarm join token as worker  $docker swarm join-token worker  Step 4: Connect to the worker machine say: worker1   $docker-machine ssh worker1  Step 5: Now while running the swarm join token command, it should be successful.