`/ etc / sub {u,g} id`中用户的意义是什么? (帮我grok用户名称空间)

我想确保我的docker容器内的任何用户总是映射到我的docker主机上的特定用户。 我已经尝试使用此参考https://stackoverflow.com/a/35854547/1020678

/etc/subuid的用户名似乎被严格用作映射到值<start id>:<range> key <start id>:<range>的关键字<start id>:<range> ,但除此之外似乎没有任何用途。

真正困扰我的是在/etc/subuid需要一个用户,当这个用户在/etc/subuid容器中装入卷时似乎没有权限写入文件系统。

按照链接中的示例,我以用户ns1身份执行以下操作:

$ mkdir test && docker run -ti -v $(pwd)/test:/tmp alpine touch /tmp/foobar

返回: touch: /tmp/foobar: Permission denied

看起来用户ns1没有--userns-remap=ns1好处,那么为什么在为ns1-rootns1-user1启用用户命名空间时需要此用户? 这些用户可以在权限设置正确时写入泊坞窗卷,但为什么不是ns1

是否有可能实现我的目标,或者我必须显式定义在我的容器内外的所有用户/组,使用/etc/subuid中的起始ID的偏移量(在我链接的示例中为500000)?