code: func (m *kubeGenericRuntimeManager) removeContainer(containerID string) error {
  	klog.V(4).Infof("Removing container %q", containerID)
  	// Call internal container post-stop lifecycle hook.
  	if err := m.internalLifecycle.PostStopContainer(containerID); err != nil {
  		return err
  	}
  
  	// Remove the container log.
  	// TODO: Separate log and container lifecycle management.
  	if err := m.removeContainerLog(containerID); err != nil {
  		return err
  	}
  	// Remove the container.
  	return m.runtimeService.RemoveContainer(containerID)
  }
docs: // removeContainer removes the container and the container logs.
  // Notice that we remove the container logs first, so that container will not be removed if
  // container logs are failed to be removed, and kubelet will retry this later. This guarantees
  // that container logs to be removed with the container.
  // Notice that we assume that the container should only be removed in non-running state, and
  // it will not write container logs anymore in that state.