code: async def join(
          self,
          *,
          remote_addrs: Iterable[str],
          listen_addr: str = "0.0.0.0:2377",
          join_token: str,
          advertise_addr: str = None,
          data_path_addr: str = None
      ) -> bool:
          
  
          data = {
              "RemoteAddrs": list(remote_addrs),
              "JoinToken": join_token,
              "ListenAddr": listen_addr,
              "AdvertiseAddr": advertise_addr,
              "DataPathAddr": data_path_addr,
          }
  
          await self.docker._query("swarm/join", method="POST", data=clean_map(data))
  
          return True
docs: Join a swarm.
  
          Args:
              listen_addr
                  Used for inter-manager communication
  
              advertise_addr
                  Externally reachable address advertised to other nodes.
  
              data_path_addr
                  Address or interface to use for data path traffic.
  
              remote_addrs
                  Addresses of manager nodes already participating in the swarm.
  
              join_token
                  Secret token for joining this swarm.