code: func (cli *NetworkCli) CmdServiceAttach(chain string, args ...string) error {
  	cmd := cli.Subcmd(chain, "attach", "CONTAINER SERVICE[.NETWORK]", "Sets a container as a service backend", false)
  	flAlias := opts.NewListOpts(netutils.ValidateAlias)
  	cmd.Var(&flAlias, []string{"-alias"}, "Add alias for another container")
  	cmd.Require(flag.Min, 2)
  	err := cmd.ParseFlags(args, true)
  	if err != nil {
  		return err
  	}
  
  	containerID, err := lookupContainerID(cli, cmd.Arg(0))
  	if err != nil {
  		return err
  	}
  
  	sandboxID, err := lookupSandboxID(cli, containerID)
  	if err != nil {
  		return err
  	}
  
  	sn, nn := parseServiceName(cmd.Arg(1))
  	serviceID, err := lookupServiceID(cli, nn, sn)
  	if err != nil {
  		return err
  	}
  
  	nc := serviceAttach{SandboxID: sandboxID, Aliases: flAlias.GetAll()}
  
  	_, _, err = readBody(cli.call("POST", "/services/"+serviceID+"/backend", nc, nil))
  
  	return err
  }
docs: // CmdServiceAttach handles service attach UI