code: func (ds *dockerService) RemovePodSandbox(ctx context.Context, r *runtimeapi.RemovePodSandboxRequest) (*runtimeapi.RemovePodSandboxResponse, error) {
  	podSandboxID := r.PodSandboxId
  	var errs []error
  
  	opts := dockertypes.ContainerListOptions{All: true}
  
  	opts.Filters = dockerfilters.NewArgs()
  	f := newDockerFilter(&opts.Filters)
  	f.AddLabel(sandboxIDLabelKey, podSandboxID)
  
  	containers, err := ds.client.ListContainers(opts)
  	if err != nil {
  		errs = append(errs, err)
  	}
  
  	// Remove all containers in the sandbox.
  	for i := range containers {
  		if _, err := ds.RemoveContainer(ctx, &runtimeapi.RemoveContainerRequest{ContainerId: containers[i].ID}); err != nil && !libdocker.IsContainerNotFoundError(err) {
  			errs = append(errs, err)
  		}
  	}
  
  	// Remove the sandbox container.
  	err = ds.client.RemoveContainer(podSandboxID, dockertypes.ContainerRemoveOptions{RemoveVolumes: true, Force: true})
  	if err == nil || libdocker.IsContainerNotFoundError(err) {
  		// Only clear network ready when the sandbox has actually been
  		// removed from docker or doesn't exist
  		ds.clearNetworkReady(podSandboxID)
  	} else {
  		errs = append(errs, err)
  	}
  
  	// Remove the checkpoint of the sandbox.
  	if err := ds.checkpointManager.RemoveCheckpoint(podSandboxID); err != nil {
  		errs = append(errs, err)
  	}
  	if len(errs) == 0 {
  		return &runtimeapi.RemovePodSandboxResponse{}, nil
  	}
  	return nil, utilerrors.NewAggregate(errs)
  }
docs: // RemovePodSandbox removes the sandbox. If there are running containers in the
  // sandbox, they should be forcibly removed.