Kaydet (Commit) 95297dc2 authored tarafından Joffrey F's avatar Joffrey F

Replace erroneous networks argument in containers.run with singular

network equivalent.

Small docfixes
Signed-off-by: 's avatarJoffrey F <joffrey@docker.com>
üst 007ab677
......@@ -147,7 +147,7 @@ class Container(Model):
Returns:
(generator or str): If ``stream=True``, a generator yielding
response chunks. A string containing response data otherwise.
response chunks. A string containing response data otherwise.
Raises:
:py:class:`docker.errors.APIError`
......@@ -546,10 +546,12 @@ class ContainerCollection(Collection):
behavior. Accepts number between 0 and 100.
memswap_limit (str or int): Maximum amount of memory + swap a
container is allowed to consume.
networks (:py:class:`list`): A list of network names to connect
this container to.
name (str): The name for this container.
nano_cpus (int): CPU quota in units of 10-9 CPUs.
network (str): Name of the network this container will be connected
to at creation time. You can connect to additional networks
using :py:meth:`Network.connect`. Incompatible with
``network_mode``.
network_disabled (bool): Disable networking.
network_mode (str): One of:
......@@ -559,6 +561,7 @@ class ContainerCollection(Collection):
- ``container:<name|id>`` Reuse another container's network
stack.
- ``host`` Use the host network stack.
Incompatible with ``network``.
oom_kill_disable (bool): Whether to disable OOM killer.
oom_score_adj (int): An integer value containing the score given
to the container in order to tune OOM killer preferences.
......@@ -680,6 +683,12 @@ class ContainerCollection(Collection):
raise RuntimeError("The options 'detach' and 'remove' cannot be "
"used together.")
if kwargs.get('network') and kwargs.get('network_mode'):
raise RuntimeError(
'The options "network" and "network_mode" can not be used '
'together.'
)
try:
container = self.create(image=image, command=command,
detach=detach, **kwargs)
......@@ -902,10 +911,10 @@ def _create_container_args(kwargs):
if volumes:
host_config_kwargs['binds'] = volumes
networks = kwargs.pop('networks', [])
if networks:
create_kwargs['networking_config'] = {network: None
for network in networks}
network = kwargs.pop('network', None)
if network:
create_kwargs['networking_config'] = {network: None}
host_config_kwargs['network_mode'] = network
# All kwargs should have been consumed by this point, so raise
# error if any are left
......
......@@ -103,8 +103,8 @@ class Plugin(Model):
Args:
remote (string): Remote reference to upgrade to. The
``:latest`` tag is optional and is the default if omitted.
Default: this plugin's name.
``:latest`` tag is optional and is the default if omitted.
Default: this plugin's name.
Returns:
A generator streaming the decoded API logs
......
......@@ -127,7 +127,7 @@ class ContainerSpec(dict):
class Mount(dict):
"""
Describes a mounted folder's configuration inside a container. A list of
:py:class:`Mount`s would be used as part of a
:py:class:`Mount` would be used as part of a
:py:class:`~docker.types.ContainerSpec`.
Args:
......
import docker
import tempfile
from .base import BaseIntegrationTest, TEST_API_VERSION
from ..helpers import random_name
class ContainerCollectionTest(BaseIntegrationTest):
......@@ -69,6 +70,24 @@ class ContainerCollectionTest(BaseIntegrationTest):
)
self.assertEqual(out, b'hello\n')
def test_run_with_network(self):
net_name = random_name()
client = docker.from_env(version=TEST_API_VERSION)
client.networks.create(net_name)
self.tmp_networks.append(net_name)
container = client.containers.run(
'alpine', 'echo hello world', network=net_name,
detach=True
)
self.tmp_containers.append(container.id)
attrs = container.attrs
assert 'NetworkSettings' in attrs
assert 'Networks' in attrs['NetworkSettings']
assert list(attrs['NetworkSettings']['Networks'].keys()) == [net_name]
def test_get(self):
client = docker.from_env(version=TEST_API_VERSION)
container = client.containers.run("alpine", "sleep 300", detach=True)
......
......@@ -71,8 +71,7 @@ class ContainerCollectionTest(unittest.TestCase):
memswap_limit=456,
name='somename',
network_disabled=False,
network_mode='blah',
networks=['foo'],
network='foo',
oom_kill_disable=True,
oom_score_adj=5,
pid_mode='host',
......@@ -153,7 +152,7 @@ class ContainerCollectionTest(unittest.TestCase):
'MemoryReservation': 123,
'MemorySwap': 456,
'MemorySwappiness': 2,
'NetworkMode': 'blah',
'NetworkMode': 'foo',
'OomKillDisable': True,
'OomScoreAdj': 5,
'PidMode': 'host',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment