Dockerコンテナ間のサービスポート管理を簡素化するため、含まれているHTTPサービスがそれぞれのコンテナのIPアドレスのHTTPのデフォルトのTCPポート80をリッスンできるようにします。コンテナがポート80でリッスンできるようにする副作用
1025未満のポート番号を聞くことは、古典的には、特別な特権を持つユーザ、たとえばroot
に制限されています。この理由は、私が理解する限り、マルチユーザーシステム上の特権のないユーザーが、マシン全体に対して権限のあるHTTPサービスとして動作することを禁止するためです。
新しいLinuxバージョンでは、Linuxカーネル機能CAP_NET_BIND_SERVICE
を適用することで、特定の実行可能ファイルにこれを許可することもできます。これをDockerコンテナで使用するには、Dockerクライアントの--add-cap
フラグまたはDocker-Compose cap_add
セクションのいずれかを使用して、Dockerコンテナ自体にこの機能を適用する必要があるようです。
理論的には、Linuxカーネルのネームスペースにより、コンテナ内のプロセスが排他的な独自のIPアドレスにのみバインドできるため、このポート番号制限の理由は時代遅れです。
これを行うことについて深刻な注意点がある場合は、私の質問は今あるでしょう。これは何ですか、あるいはこれが私にとって考えられないようなセキュリティ上の問題になることはありますか?あるいはこれを行うことに関して他に何か問題がありますか?
どのような基準でこれをお勧めしますか?これによって開かれた攻撃シナリオはありますか? – aef