code: func (daemon *Daemon) ContainerExtractToDir(name, path string, copyUIDGID, noOverwriteDirNonDir bool, content io.Reader) error {
  	container, err := daemon.GetContainer(name)
  	if err != nil {
  		return err
  	}
  
  	// Make sure an online file-system operation is permitted.
  	if err := daemon.isOnlineFSOperationPermitted(container); err != nil {
  		return errdefs.System(err)
  	}
  
  	err = daemon.containerExtractToDir(container, path, copyUIDGID, noOverwriteDirNonDir, content)
  	if err == nil {
  		return nil
  	}
  
  	if os.IsNotExist(err) {
  		return containerFileNotFound{path, name}
  	}
  	return errdefs.System(err)
  }
docs: // ContainerExtractToDir extracts the given archive to the specified location
  // in the filesystem of the container identified by the given name. The given
  // path must be of a directory in the container. If it is not, the error will
  // be ErrExtractPointNotDirectory. If noOverwriteDirNonDir is true then it will
  // be an error if unpacking the given content would cause an existing directory
  // to be replaced with a non-directory and vice versa.