docs: def get_attached_preparation_host_config_kwargs(self, action, container_name, volume_container, kwargs=None):
          """
          Generates keyword arguments for the Docker client to set up the HostConfig for preparing an attached container
          (i.e. adjust user and permissions) or start the preparation.
  
          :param action: Action configuration.
          :type action: dockermap.map.runner.ActionConfig
          :param container_name: Container name or id. Set ``None`` when included in kwargs for ``create_container``.
          :type container_name: unicode | str | NoneType
          :param volume_container: Name of the volume or name of the container that shares the volume.
          :type volume_container: unicode | str
          :param kwargs: Additional keyword arguments to complement or override the configuration-based values.
          :type kwargs: dict | NoneType
          :return: Resulting keyword arguments.
          :rtype: dict
          """
          if action.client_config.features['volumes']:
              c_kwargs = dict(binds=['{0}:{1}'.format(volume_container, PREPARATION_TMP_PATH)])
          else:
              c_kwargs = dict(volumes_from=[volume_container])
          if container_name:
              c_kwargs['container'] = container_name
          update_kwargs(c_kwargs, kwargs)
          return c_kwargs