docs: def get_container_create_kwargs(self, action, container_name, kwargs=None):
          """
          Generates keyword arguments for the Docker client to create a container.
  
          :param action: Action configuration.
          :type action: ActionConfig
          :param container_name: Container name.
          :type container_name: 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
          """
          policy = self._policy
          client_config = action.client_config
          container_map = action.container_map
          container_config = action.config
          image_tag = container_map.get_image(container_config.image or action.config_id.config_name)
          default_paths = policy.default_volume_paths[action.config_id.map_name]
          c_kwargs = dict(
              name=container_name,
              image=format_image_tag(image_tag),
              volumes=get_volumes(container_map, container_config, default_paths,
                                  client_config.features['volumes']),
              user=extract_user(container_config.user),
              ports=[resolve_value(port_binding.exposed_port)
                     for port_binding in container_config.exposes if port_binding.exposed_port],
              hostname=policy.get_hostname(container_name, action.client_name) if container_map.set_hostname else None,
              domainname=resolve_value(client_config.get('domainname', container_map.default_domain)) or None,
          )
          if container_config.network_mode == 'none':
              c_kwargs['network_disabled'] = True
          elif client_config.features['networks'] and container_config.networks:
              first_network = container_config.networks[0]
              c_kwargs['networking_config'] = NetworkingConfig({
                  policy.nname(action.config_id.map_name, first_network.network_name): EndpointConfig(
                      client_config.version, **self.get_network_create_endpoint_kwargs(action, first_network)
                  )
              })
          if client_config.features['stop_signal'] and container_config.stop_signal:
              c_kwargs['stop_signal'] = container_config.stop_signal
          hc_extra_kwargs = kwargs.pop('host_config', None) if kwargs else None
          use_host_config = client_config.features['host_config']
          if use_host_config:
              hc_kwargs = self.get_container_host_config_kwargs(action, None, kwargs=hc_extra_kwargs)
              if hc_kwargs:
                  if use_host_config == USE_HC_MERGE:
                      c_kwargs.update(hc_kwargs)
                  else:
                      c_kwargs['host_config'] = HostConfig(version=client_config.version, **hc_kwargs)
          if client_config.features['stop_timeout'] and container_config.stop_timeout:
              c_kwargs['stop_timeout'] = container_config.stop_timeout
          if client_config.features['healthcheck'] and container_config.healthcheck:
              c_kwargs['healthcheck'] = container_config.healthcheck._asdict()
          update_kwargs(c_kwargs, init_options(container_config.create_options), kwargs)
          return c_kwargs