diff --git a/daemon/cluster/cluster.go b/daemon/cluster/cluster.go index 66bf99bcfe..f0981fc3c6 100644 --- a/daemon/cluster/cluster.go +++ b/daemon/cluster/cluster.go @@ -467,11 +467,13 @@ func (c *Cluster) Join(req types.JoinRequest) error { } var advertiseAddr string - advertiseHost, advertisePort, err := c.resolveAdvertiseAddr(req.AdvertiseAddr, listenPort) - // For joining, we don't need to provide an advertise address, - // since the remote side can detect it. - if err == nil { - advertiseAddr = net.JoinHostPort(advertiseHost, advertisePort) + if req.AdvertiseAddr != "" { + advertiseHost, advertisePort, err := c.resolveAdvertiseAddr(req.AdvertiseAddr, listenPort) + // For joining, we don't need to provide an advertise address, + // since the remote side can detect it. + if err == nil { + advertiseAddr = net.JoinHostPort(advertiseHost, advertisePort) + } } // todo: check current state existing