-u/--user
のためのオプションdocker run
唯一に記載されているローカルアカウントに便利です/etc/passwd
。 ホストシステムがLDAPと統合されている場合、ユーザーはこのファイルにエントリを持ちません。 それらのユーザーを見つけることができないため、Dockerの実行は失敗します。
以下の例では、ユーザーbhuvan
はLDAPにありますが、dockerrunはこのアカウントの使用を許可していません。 Dockerには、ホストシステムの認証メカニズムを使用する機能が必要です。
$ 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
bhuvan
アカウントでdockerを実行している場合は、次のように-u
フラグを設定することで、 bhuvan
ユーザーとしてコンテナーに入ることができます。
-u=$(id -u $(whoami)):$(id -g $(whoami))
コンテナ内には、名前ではなく実際のUIDとGIDが表示されることに注意してください。
@bhuvaneswaranこれをコンテナ内に設定する必要があります。 LDAPとの統合は現在不可能です。
DockerのLdap統合は将来可能になる可能性がありますが、現時点ではサポートされていません。 プラグインがサポートされると、これが可能になるはずです。
@louden数年後に同じ問題が発生しました。ユーザーを渡そうとして、LDAPにのみ保存され、/ etc / passwdには保存されない場合、コードスニペットを使用してもコンテナ内で使用できません。 。
残念ながら、ネットワーク管理者がローカルユーザーを作成し(権限がある場合)、そのユーザーとdockerを実行して、そうでないユーザーのネットワーク認証を照会できないという事実を回避することを歓迎してくれるとはとても思えません。 / etc / passwdに従ってシステム上に存在します。
最も参考になるコメント
bhuvan
アカウントでdockerを実行している場合は、次のように-u
フラグを設定することで、bhuvan
ユーザーとしてコンテナーに入ることができます。コンテナ内には、名前ではなく実際のUIDとGIDが表示されることに注意してください。