code: func (ds *dockerService) PullImage(_ context.Context, r *runtimeapi.PullImageRequest) (*runtimeapi.PullImageResponse, error) {
  	image := r.GetImage()
  	auth := r.GetAuth()
  	authConfig := dockertypes.AuthConfig{}
  
  	if auth != nil {
  		authConfig.Username = auth.Username
  		authConfig.Password = auth.Password
  		authConfig.ServerAddress = auth.ServerAddress
  		authConfig.IdentityToken = auth.IdentityToken
  		authConfig.RegistryToken = auth.RegistryToken
  	}
  	err := ds.client.PullImage(image.Image,
  		authConfig,
  		dockertypes.ImagePullOptions{},
  	)
  	if err != nil {
  		return nil, filterHTTPError(err, image.Image)
  	}
  
  	imageRef, err := getImageRef(ds.client, image.Image)
  	if err != nil {
  		return nil, err
  	}
  
  	return &runtimeapi.PullImageResponse{ImageRef: imageRef}, nil
  }
docs: // PullImage pulls an image with authentication config.