code: func expose(b *Builder, args []string, attributes map[string]bool, flagArgs []string, original string) error {
  	if len(args) == 0 {
  		return errAtLeastOneArgument("EXPOSE")
  	}
  
  	if b.RunConfig.ExposedPorts == nil {
  		b.RunConfig.ExposedPorts = make(map[docker.Port]struct{})
  	}
  
  	existing := map[string]struct{}{}
  	for k := range b.RunConfig.ExposedPorts {
  		existing[k.Port()] = struct{}{}
  	}
  
  	for _, port := range args {
  		dp := docker.Port(port)
  		if _, exists := existing[dp.Port()]; !exists {
  			b.RunConfig.ExposedPorts[docker.Port(fmt.Sprintf("%s/%s", dp.Port(), dp.Proto()))] = struct{}{}
  		}
  	}
  	return nil
  }
docs: // EXPOSE 6667/tcp 7000/tcp
  //
  // Expose ports for links and port mappings. This all ends up in
  // b.RunConfig.ExposedPorts for runconfig.
  //