code: func (r *runtimeVM) StartContainer(c *Container) error {
  	logrus.Debug("runtimeVM.startContainer() start")
  	defer logrus.Debug("runtimeVM.startContainer() end")
  
  	// Lock the container
  	c.opLock.Lock()
  	defer c.opLock.Unlock()
  
  	if err := r.start(r.ctx, c.ID(), ""); err != nil {
  		return err
  	}
  
  	// Spawn a goroutine waiting for the container to terminate. Once it
  	// happens, the container status is retrieved to be updated.
  	go func() {
  		r.wait(r.ctx, c.ID(), "")
  		r.UpdateContainerStatus(c)
  	}()
  
  	return nil
  }
docs: // StartContainer starts a container.