問題タブ [linux-namespaces]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - コンテナーがポート 80 でリッスンできるようにすることの副作用
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 アドレスにのみバインドできるためです。
私の質問は、これを行うことについて重大な警告があるかどうかです。これは、私が考えていない方法でセキュリティ上の問題になる可能性がありますか? または、これを行うことについて他に問題はありますか?
linux - Docker cgroup のスレッド ID をホストスレッド ID に変換する
cgroups スレッド ID をホスト スレッド ID にマップする簡単な方法はあります$CONTAINER_PARENT_PROCESSID
か$HOST_PARENT_PROCESSID
?
コンテナ内のスレッド ID は の出力のps -T $CONTAINER_PARENT_PROCESSID
一部であり、ホスト内のスレッド ID は の出力の一部ですps -T $HOST_PARENT_PROCESSID
。
c - Ubuntu では、コンテナー分離 (ユーザー名前空間) を実装し、さらに /proc/[pid]/gid_map を実行しても何も出力されません
docker を勉強するとき、章のコード: [ユーザー名前空間] :
デモの意味は、[ユーザー名前空間] を使用して達成することです:
コンテナーの外側は通常のユーザー権限であり、コンテナー内は root 権限です。
docker book では、eUID = 0 および eGID = 0 ですが、私の eGID = 65534
以上 /proc/pid/gid_map 何もありませんが、それ以上の uid_map は問題ありません
このような :
そしてショー:
子シェルにコマンドを入力したとき。
ショー: 0 1000 1
何も表示しない
キーの eUID と eGID は = 0 である必要がありますが、私の eGID = 65534 です。
eGID = 0 ではなく、なぜ eGID = 65534 なのかわかりません。
gcc バージョン 5.4.0 20160609 (Ubuntu 5.4.0-6 ubuntu1~16.04.4)
英語は私の母国語ではありません。タイプミスをお許しください。