Create a new container.

        :param name:
            The name for the container. This will be prefixed with the
            namespace.
        :param image:
            The image tag or image object to create the container from.
        :param network:
            The network to connect the container to. The container will be
            given an alias with the ``name`` parameter. Note that, unlike the
            Docker Python client, this parameter can be a ``Network`` model
            object, and not just a network ID or name.
        :param volumes:
            A mapping of volumes to bind parameters. The keys to this mapping
            can be any of three types of objects:

            - A ``Volume`` model object
            - The name of a volume (str)
            - A path on the host to bind mount into the container (str)

            The bind parameters, i.e. the values in the mapping, can be of
            two types:

            - A full bind specifier (dict), for example
              ``{'bind': '/mnt', 'mode': 'rw'}``
            - A "short-form" bind specifier (str), for example ``/mnt:rw``
        :param fetch_image:
            Whether to attempt to pull the image if it is not found locally.
        :param kwargs:
            Other parameters to create the container with.

def create(self, name, image, fetch_image=False, network=None, volumes={},
               **kwargs):
        """
        Create a new container.

        :param name:
            The name for the container. This will be prefixed with the
            namespace.
        :param image:
            The image tag or image object to create the container from.
        :param network:
            The network to connect the container to. The container will be
            given an alias with the ``name`` parameter. Note that, unlike the
            Docker Python client, this parameter can be a ``Network`` model
            object, and not just a network ID or name.
        :param volumes:
            A mapping of volumes to bind parameters. The keys to this mapping
            can be any of three types of objects:

            - A ``Volume`` model object
            - The name of a volume (str)
            - A path on the host to bind mount into the container (str)

            The bind parameters, i.e. the values in the mapping, can be of
            two types:

            - A full bind specifier (dict), for example
              ``{'bind': '/mnt', 'mode': 'rw'}``
            - A "short-form" bind specifier (str), for example ``/mnt:rw``
        :param fetch_image:
            Whether to attempt to pull the image if it is not found locally.
        :param kwargs:
            Other parameters to create the container with.
        """
        create_kwargs = {
            'detach': True,
        }

        # Convert network & volume models to IDs
        network = self._network_for_container(network, kwargs)
        if network is not None:
            network_id, network = (
                self._network_helper._get_id_and_model(network))
            create_kwargs['network'] = network_id

        if volumes:
            create_kwargs['volumes'] = self._volumes_for_container(volumes)

        create_kwargs.update(kwargs)

        if fetch_image:
            self._image_helper.fetch(image)

        container = super().create(name, image, **create_kwargs)

        if network is not None:
            self._connect_container_network(container, network, aliases=[name])

        return container