Я хотел бы убедиться, что любой пользователь внутри моего контейнера докеров всегда сопоставляется с конкретным пользователем на моем хосте докеров. Я пытался использовать эту ссылку https://stackoverflow.com/a/35854547/1020678
Имя пользователя в /etc/subuid
, по-видимому, используется строго как ключ для сопоставления со значением: <start id>:<range>
, но кроме этого, похоже, оно не имеет никакой цели.
Что меня действительно смущает, так это необходимость пользователя в /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-root
и ns1-user1
? Эти пользователи могут записывать в том docker, если права установлены правильно, но почему бы и нет ns1
?
Возможно ли достичь моей цели, или мне нужно явно определить всех пользователей/групп как внутри, так и вне моего контейнера, используя смещение начального идентификатора в /etc/subuid
(500000 в примере, на который я ссылаюсь)?