models.networks

Module Contents

Classes

Network() A Docker network.
NetworkCollection() Networks on the Docker server.
class Network

A Docker network.

name()

The name of the network.

containers()

The containers that are connected to the network, as a list of Container objects.

connect(container, *args, **kwargs)

Connect a container to this network.

Args:
container (str): Container to connect to this network, as either
an ID, name, or Container object.
aliases (list): A list of aliases for this endpoint.
Names in that list can be used within the network to reach the container. Defaults to None.
links (list): A list of links for this endpoint.
Containers declared in this list will be linkedto this container. Defaults to None.
ipv4_address (str): The IP address of this container on the
network, using the IPv4 protocol. Defaults to None.
ipv6_address (str): The IP address of this container on the
network, using the IPv6 protocol. Defaults to None.
link_local_ips (list): A list of link-local (IPv4/IPv6)
addresses.
Raises:
docker.errors.APIError
If the server returns an error.
disconnect(container, *args, **kwargs)

Disconnect a container from this network.

Args:
container (str): Container to disconnect from this network, as
either an ID, name, or Container object.
force (bool): Force the container to disconnect from a network.
Default: False
Raises:
docker.errors.APIError
If the server returns an error.
remove()

Remove this network.

Raises:
docker.errors.APIError
If the server returns an error.
class NetworkCollection

Networks on the Docker server.

create(name, *args, **kwargs)

Create a network. Similar to the docker network create.

Args:

name (str): Name of the network driver (str): Name of the driver used to create the network options (dict): Driver options as a key-value dictionary ipam (IPAMConfig): Optional custom IP scheme for the network. check_duplicate (bool): Request daemon to check for networks with

same name. Default: None.
internal (bool): Restrict external access to the network. Default
False.
labels (dict): Map of labels to set on the network. Default
None.

enable_ipv6 (bool): Enable IPv6 on the network. Default False. attachable (bool): If enabled, and the network is in the global

scope, non-service containers on worker nodes will be able to connect to the network.
scope (str): Specify the network’s scope (local, global or
swarm)
ingress (bool): If set, create an ingress network which provides
the routing-mesh in swarm mode.
Returns:
(Network): The network that was created.
Raises:
docker.errors.APIError
If the server returns an error.
Example:

A network using the bridge driver:

>>> client.networks.create("network1", driver="bridge")

You can also create more advanced networks with custom IPAM configurations. For example, setting the subnet to 192.168.52.0/24 and gateway address to 192.168.52.254.

>>> ipam_pool = docker.types.IPAMPool(
    subnet='192.168.52.0/24',
    gateway='192.168.52.254'
)
>>> ipam_config = docker.types.IPAMConfig(
    pool_configs=[ipam_pool]
)
>>> client.networks.create(
    "network1",
    driver="bridge",
    ipam=ipam_config
)
get(network_id, *args, **kwargs)

Get a network by its ID.

Args:

network_id (str): The ID of the network. verbose (bool): Retrieve the service details across the cluster in

swarm mode.
scope (str): Filter the network by scope (swarm, global
or local).
Returns:
(Network) The network.
Raises:
docker.errors.NotFound
If the network does not exist.
docker.errors.APIError
If the server returns an error.
list(*args, **kwargs)

List networks. Similar to the docker networks ls command.

Args:

names (list): List of names to filter by. ids (list): List of ids to filter by. filters (dict): Filters to be processed on the network list.

Available filters: - driver=[<driver-name>] Matches a network’s driver. - label=[<key>] or label=[<key>=<value>]. - type=["custom"|"builtin"] Filters networks by type.
greedy (bool): Fetch more details for each network individually.
You might want this to get the containers attached to them.
Returns:
(list of Network) The networks on the server.
Raises:
docker.errors.APIError
If the server returns an error.
prune(filters=None)