diff --git a/docker/api/network.py b/docker/api/network.py index 57ed8d3b75..02499394f1 100644 --- a/docker/api/network.py +++ b/docker/api/network.py @@ -215,7 +215,7 @@ def inspect_network(self, net_id, verbose=None, scope=None): def connect_container_to_network(self, container, net_id, ipv4_address=None, ipv6_address=None, aliases=None, links=None, - link_local_ips=None): + link_local_ips=None, mac_address=None): """ Connect a container to a network. @@ -234,6 +234,8 @@ def connect_container_to_network(self, container, net_id, network, using the IPv6 protocol. Defaults to ``None``. link_local_ips (:py:class:`list`): A list of link-local (IPv4/IPv6) addresses. + mac_address (str): The MAC address of this container on the + network. Defaults to ``None``. """ data = { "Container": container, diff --git a/docker/types/networks.py b/docker/types/networks.py index 1c7b2c9e69..f6db26c2fa 100644 --- a/docker/types/networks.py +++ b/docker/types/networks.py @@ -4,7 +4,7 @@ class EndpointConfig(dict): def __init__(self, version, aliases=None, links=None, ipv4_address=None, - ipv6_address=None, link_local_ips=None): + ipv6_address=None, link_local_ips=None, mac_address=None): if version_lt(version, '1.22'): raise errors.InvalidVersion( 'Endpoint config is not supported for API version < 1.22' @@ -23,6 +23,13 @@ def __init__(self, version, aliases=None, links=None, ipv4_address=None, if ipv6_address: ipam_config['IPv6Address'] = ipv6_address + if mac_address: + if version_lt(version, '1.25'): + raise errors.InvalidVersion( + 'mac_address is not supported for API version < 1.25' + ) + ipam_config['MacAddress'] = mac_address + if link_local_ips is not None: if version_lt(version, '1.24'): raise errors.InvalidVersion(