code: func NewDockerCli(ops ...DockerCliOption) (*DockerCli, error) {
  	cli := &DockerCli{}
  	defaultOps := []DockerCliOption{
  		WithContentTrustFromEnv(),
  		WithContainerizedClient(containerizedengine.NewClient),
  	}
  	cli.contextStoreConfig = defaultContextStoreConfig()
  	ops = append(defaultOps, ops...)
  	if err := cli.Apply(ops...); err != nil {
  		return nil, err
  	}
  	if cli.out == nil || cli.in == nil || cli.err == nil {
  		stdin, stdout, stderr := term.StdStreams()
  		if cli.in == nil {
  			cli.in = streams.NewIn(stdin)
  		}
  		if cli.out == nil {
  			cli.out = streams.NewOut(stdout)
  		}
  		if cli.err == nil {
  			cli.err = stderr
  		}
  	}
  	return cli, nil
  }
docs: // NewDockerCli returns a DockerCli instance with all operators applied on it.
  // It applies by default the standard streams, the content trust from
  // environment and the default containerized client constructor operations.