code: func (r *streamingRuntime) exec(containerID string, cmd []string, in io.Reader, out, errw io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize, timeout time.Duration) error {
  	container, err := checkContainerStatus(r.client, containerID)
  	if err != nil {
  		return err
  	}
  	return r.execHandler.ExecInContainer(r.client, container, cmd, in, out, errw, tty, resize, timeout)
  }
docs: // Internal version of Exec adds a timeout.