Получить идентификатор пользователя на хосте от docker - PullRequest
0 голосов
/ 09 апреля 2020

Внутри контейнера я хотел бы получить идентификатор пользователя на хост-машине (что выдаст команда id -u username с хоста).

Есть ли способ выполнить sh this?

Я думал, что смогу смонтировать /etc/passwd в контейнере и grep внутри, но, к сожалению, пользователи не перечислены в этом файле на нашем сервере (возможно, это связано с механизмом аутентификации LDAP?) .

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Я решил эту проблему, установив папку хоста /home в свой контейнер и получив идентификатор владельца домашнего каталога пользователя /home/<user>.

0 голосов
/ 09 апреля 2020

Нет способа получить информацию о хост-пользователях внутри контейнера. Цель проекта Docker состоит в том, чтобы хост и контейнеры были изолированы друг от друга. Контейнер не имеет понятия хост-пользователя; с точки зрения демона Docker, Docker даже не знает, какой пользователь запросил запуск контейнера.

(Это вдвойне верно, если ваша система аутентификации хоста является чем-то более сложным, например, Настройка LDAP: у контейнера просто могут не быть инструментов или учетных данных, необходимых для его запроса, а изоляция означает, что нет способа каким-либо образом делегировать хосту.)

Если основная цель вашего приложения - взаимодействовать с пользователи хоста, или файловая система хоста, или иным образом вы активно не хотите использовать функции изоляции Docker, лучше запускать вашу программу за пределами Docker.

...