2

Docker コンテナー間のサービス ポート管理を簡素化するために、含まれている HTTP サービスがそれぞれのコンテナーの IP アドレスの HTTP の既定の TCP ポート 80 でリッスンできるようにしたいと考えています。

1025 未満のポート番号をリッスンすることは、従来は などの特別な権限を持つユーザーに制限されていましrootた。私が理解している限り、これの理由は、マルチユーザー システムで非特権ユーザーがマシン全体の権限のある HTTP サービスとして機能することを禁止するためです。

新しい Linux バージョンでは、Linux カーネル機能を適用することで、これを特定の実行可能ファイルに許可することもできますCAP_NET_BIND_SERVICE--add-capこれを Docker コンテナーで機能させるには、Docker クライアントのフラグまたは Docker-Composecap_addセクションを使用して、この機能を Docker コンテナー自体に適用する必要があるようです。

理論的には、このポート番号の制限の理由は、この場合は廃止されました。Linux カーネルのネットワーク ネームスペースにより、コンテナー内のプロセスは、コンテナー内のプロセスに排他的な独自の IP アドレスにのみバインドできるためです。

私の質問は、これを行うことについて重大な警告があるかどうかです。これは、私が考えていない方法でセキュリティ上の問題になる可能性がありますか? または、これを行うことについて他に問題はありますか?

4

2 に答える 2

-1

今のところ、他のポートにバインドすることをお勧めします。コンテナが作成されると、常に別のポートに転送されます。セキュリティをいじり、不要な特権をコンテナーに残すことは、特定のポートに内部的にバインドするだけでは面倒です。

于 2017-09-02T07:53:52.847 に答える