Skip to content

Commit b5d3556

Browse files
committed
Added support for user namespace.
Signed-off-by: Srikalyan Swayampakula <[email protected]>
1 parent 94f8dd3 commit b5d3556

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

docker/utils/utils.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ def create_host_config(binds=None, port_bindings=None, lxc_conf=None,
620620
device_write_bps=None, device_read_iops=None,
621621
device_write_iops=None, oom_kill_disable=False,
622622
shm_size=None, version=None, tmpfs=None,
623-
oom_score_adj=None):
623+
oom_score_adj=None, userns_mode=None):
624624

625625
host_config = {}
626626

@@ -853,6 +853,14 @@ def create_host_config(binds=None, port_bindings=None, lxc_conf=None,
853853
raise host_config_version_error('tmpfs', '1.22')
854854
host_config["Tmpfs"] = convert_tmpfs_mounts(tmpfs)
855855

856+
if userns_mode:
857+
if version_lt(version, '1.23'):
858+
raise host_config_version_error('userns_mode', '1.23')
859+
860+
if userns_mode != "host":
861+
raise host_config_value_error("userns_mode", userns_mode)
862+
host_config['UsernsMode'] = userns_mode
863+
856864
return host_config
857865

858866

docs/hostconfig.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ for example:
123123
for more information.
124124
* tmpfs: Temporary filesystems to mouunt. See [Using tmpfs](tmpfs.md) for more
125125
information.
126+
* userns_mode: Sets the user namespace mode for the container when user namespace remapping option
127+
is enabled. supported values are: host
126128

127129
**Returns** (dict) HostConfig dictionary
128130

tests/unit/utils_test.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,16 @@ def test_create_host_config_with_oom_kill_disable(self):
9898
InvalidVersion, lambda: create_host_config(version='1.18.3',
9999
oom_kill_disable=True))
100100

101+
def test_create_host_config_with_userns_mode(self):
102+
config = create_host_config(version='1.23', userns_mode='host')
103+
self.assertEqual(config.get('UsernsMode'), 'host')
104+
self.assertRaises(
105+
InvalidVersion, lambda: create_host_config(version='1.22',
106+
userns_mode='host'))
107+
self.assertRaises(
108+
ValueError, lambda: create_host_config(version='1.23',
109+
userns_mode='host12'))
110+
101111
def test_create_host_config_with_oom_score_adj(self):
102112
config = create_host_config(version='1.22', oom_score_adj=100)
103113
self.assertEqual(config.get('OomScoreAdj'), 100)
@@ -602,7 +612,6 @@ def test_create_ipam_config(self):
602612

603613

604614
class SplitCommandTest(base.BaseTestCase):
605-
606615
def test_split_command_with_unicode(self):
607616
self.assertEqual(split_command(u'echo μμ'), ['echo', 'μμ'])
608617

0 commit comments

Comments
 (0)