从docker获取主机上用户的ID

问题描述 投票:-1回答:2

[我想从容器内部获取主机上的用户ID(id -u username命令将从主机输出什么)。

有没有办法做到这一点?

[我以为我可以将/etc/passwd装入容器中,并将grep装入内部,但是不幸的是,用户未在我们服务器上的此文件中列出(可能与LDAP身份验证机制有关?)。

谢谢

docker host uid
2个回答
0
投票

无法从容器内部获取有关主机用户的信息。 Docker的设计目标是将主机和容器彼此隔离。容器没有宿主用户的概念。从Docker守护程序的角度来看,Docker甚至不真正知道哪个用户请求启动容器。

(如果您的主机身份验证系统更复杂,例如LDAP设置,这是双重事实:容器可能根本没有查询它所需的工具或凭据,而隔离意味着没有办法以某种方式委派给主机。 )

如果应用程序的主要目标是与主机用户或主机文件系统进行交互,或者您积极地不想使用Docker的隔离功能,那么最好在Docker外部运行程序。


0
投票

我最终通过在主机上安装主机文件夹/home并获取用户主目录/home/<user>的所有者的ID来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.