Die Option -u/--user
für docker run
ist nur für lokale Konten nützlich, die in /etc/passwd
. Wenn das Hostsystem mit ldap integriert ist, haben die Benutzer keinen Eintrag in dieser Datei. Docker-Ausführung schlägt fehl, da diese Benutzer nicht gefunden werden können.
Im folgenden Beispiel befindet sich der Benutzer bhuvan
in ldap, aber docker run erlaubt nicht, dieses Konto zu verwenden. Docker sollte in der Lage sein, den Authentifizierungsmechanismus des Hostsystems zu verwenden.
$ docker run --user=bhuvan --rm -i -t --net host centos:centos6 /bin/bash
2014/07/16 16:45:54 Error response from daemon: Cannot start container 95ef5ab02d7471b509fcaa37c22afe48b04af3c57db5b72264f84136c97bec39: finalize namespace setup user get supplementary groups Unable to find user bhuvan
Wenn Sie Docker im bhuvan
Konto ausführen, können Sie als bhuvan
Benutzer in den Container eintreten, indem Sie das -u
Flag wie folgt setzen:
-u=$(id -u $(whoami)):$(id -g $(whoami))
Beachten Sie, dass Sie im Container nicht den Namen, sondern die tatsächliche UID und GID sehen.
@bhuvaneswaran Sie müssen dies in Ihrem Container einrichten. Eine Integration mit LDAP ist jetzt nicht möglich.
Die LDAP-Integration für Docker wird möglicherweise in Zukunft möglich, wird jedoch derzeit nicht unterstützt. Dies sollte möglich werden, sobald Plugins unterstützt werden.
@louden Ich bin Jahre später auf dasselbe Problem einzugeben und er nur in LDAP und nicht in /etc/passwd gespeichert ist, kann ich ihn selbst mit Ihrem Code-Snippet nicht im Container verwenden .
Leider bezweifle ich stark, dass unsere Netzwerkadministratoren es begrüßen würden, wenn ich einen lokalen Benutzer erstellen würde (wenn ich die Berechtigungen habe) und Docker mit diesem Benutzer ausführt, nur um die Tatsache zu umgehen, dass die Netzwerkauthentifizierung für den Benutzer nicht abgefragt werden kann, der dies nicht tut. exist" auf dem System gemäß /etc/passwd.
Hilfreichster Kommentar
Wenn Sie Docker im
bhuvan
Konto ausführen, können Sie alsbhuvan
Benutzer in den Container eintreten, indem Sie das-u
Flag wie folgt setzen:Beachten Sie, dass Sie im Container nicht den Namen, sondern die tatsächliche UID und GID sehen.