Networks
Create and manage networks on the server. For more information about networks, see the Engine documentation.
Methods available on client.networks
:
-
class NetworkCollection
-
create(name, *args, **kwargs)
Create a network. Similar to the docker network create
.
- Parameters:
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:
The network that was created.
- Return type:
(Network
)
- 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.
- Parameters:
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:
-
-
list(*args, **kwargs)
List networks. Similar to the docker network ls
command.
- Parameters:
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 (str|list): format either "key"
, "key=value"
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)
Delete unused networks
- Parameters:
filters (dict) – Filters to process on the prune list.
- Returns:
- A dict containing a list of deleted network names and
the amount of disk space reclaimed in bytes.
- Return type:
(dict)
- Raises:
docker.errors.APIError – If the server returns an error.
Network objects
-
class Network
A Docker network.
-
id
The ID of the object.
-
short_id
The ID of the object, truncated to 12 characters.
-
name
The name of the network.
-
containers
The containers that are connected to the network, as a list of
Container
objects.
-
attrs
The raw representation of this object from the server.
-
connect(container, *args, **kwargs)
Connect a container to this network.
- Parameters:
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.
driver_opt (dict) – A dictionary of options to provide to the
network driver. Defaults to None
.
- Raises:
docker.errors.APIError – If the server returns an error.
-
disconnect(container, *args, **kwargs)
Disconnect a container from this network.
- Parameters:
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.
-
reload()
Load this object from the server again and update attrs
with the
new data.
-
remove()
Remove this network.
- Raises:
docker.errors.APIError – If the server returns an error.