[我想从容器内部获取主机上的用户ID(id -u username
命令将从主机输出什么)。
有没有办法做到这一点?
[我以为我可以将/etc/passwd
装入容器中,并将grep
装入内部,但是不幸的是,用户未在我们服务器上的此文件中列出(可能与LDAP身份验证机制有关?)。
谢谢
无法从容器内部获取有关主机用户的信息。 Docker的设计目标是将主机和容器彼此隔离。容器没有宿主用户的概念。从Docker守护程序的角度来看,Docker甚至不真正知道哪个用户请求启动容器。
(如果您的主机身份验证系统更复杂,例如LDAP设置,这是双重事实:容器可能根本没有查询它所需的工具或凭据,而隔离意味着没有办法以某种方式委派给主机。 )
如果应用程序的主要目标是与主机用户或主机文件系统进行交互,或者您积极地不想使用Docker的隔离功能,那么最好在Docker外部运行程序。
我最终通过在主机上安装主机文件夹/home
并获取用户主目录/home/<user>
的所有者的ID来解决此问题。