GitLabはブリッジインターフェイスでSSHDと共存します。

GitLabはブリッジインターフェイスでSSHDと共存します。

背景

Dockerを使用しているサーバーをPodmanに変換しようとしています。これまで、すべてのサービス(合計15個)をシステムタスクに変換し、問題なく実行できました。このプロセスでは、ブリッジデバイス()を作成し、ここにbr0物理インターフェイス(eno1)とポッドのインターフェイスを追加しました。ドライバを使用して、実行中の他のコンテナをブリッジにveth接続します。これまで、すべてが期待どおりに機能しています。bindmacvlan

質問

これで、コンテナでGitLabを起動し、標準ポート22と443を使用しようとしています。これらのポートは1024未満であるため、このコンテナをルートとして呼び出して別のユーザーに切り替える必要があります(公式コンテナはgitlab-ce合計8人の異なるユーザーを使用します)。コンテナを起動しようとするたびに、次のエラーが発生します。

podman[1161766]: Error: cannot listen on the TCP port: listen tcp4 :22: bind: address already in use

特定のIPアドレスのみを受信するようにsshdを設定したので、これは混乱していますbr0(物理ホストのアドレスは/ 24> = 100、コンテナのアドレスは4から99の間の/ 24です)。

ListenAddress 192.168.1.104

次に、netstatを使用して次のことを確認します。

tcp        0      0 192.168.1.104:22        0.0.0.0:*               LISTEN      695475/sshd

コンテナは、FE:ED:DE:AD:BE:EFホストシステムとは異なるMAC()とIP()で始まるように構成されています。192.168.1.15

質問

ポート22を使用する別のものは何ですか?

失敗した場合、netstatがポート22を使用するsshdのみを表示した場合、どのように犯人を見つけることができますか?

私が知っている限り、これはうまくいくはずです。コンテナが内部的に非 root ユーザーに切り替えても、root コンテキストで OCI ランタイムが呼び出されるため、ネットワーク インターフェイスを設定しようとするとポートにバインドできる必要があります。これは、問題なくポート53にバインドできるDNSコンテナによってさらに確認されます。

関連情報