code: func (r *runtimeVM) ExecSyncContainer(c *Container, command []string, timeout int64) (*ExecSyncResponse, error) {
  	logrus.Debug("runtimeVM.execSyncContainer() start")
  	defer logrus.Debug("runtimeVM.execSyncContainer() end")
  
  	var stdoutBuf, stderrBuf bytes.Buffer
  	stdout := cioutil.NewNopWriteCloser(&stdoutBuf)
  	stderr := cioutil.NewNopWriteCloser(&stderrBuf)
  
  	exitCode, err := r.execContainerCommon(c, command, timeout, nil, stdout, stderr, c.terminal, nil)
  	if err != nil {
  		return nil, &ExecSyncError{
  			ExitCode: -1,
  			Err:      errors.Wrapf(err, "ExecSyncContainer failed"),
  		}
  	}
  
  	return &ExecSyncResponse{
  		Stdout:   stdoutBuf.Bytes(),
  		Stderr:   stderrBuf.Bytes(),
  		ExitCode: exitCode,
  	}, nil
  }
docs: // ExecSyncContainer execs a command in a container and returns it's stdout, stderr and return code.