私はドッカーコンテナの助けを借りて私の問題を説明しましたが、この例は質問の残りの部分と直交しています。実際には、ブリッジインターフェイスの使用を許可するすべてのプログラムがssh
可能です。
私は、フォアグラウンドで実行されているデーモンによって生成されたデーモンをsshd
バックグラウンドで実行するDockerコンテナを使用します。supervisord
私は、インストールを/tmp/.X11-unix
コンテナに縛らず、ソケットをコンテナに完全にさらすことなく、X11配信を実装する安全な方法として主にsshを使用します。docker top containername
コンテナを起動してすぐに使用すると、次の結果が表示されます。
UID PID PPID C STIME TTY TIME CMD
root 4732 535 1 19:56 ? 00:00:00 /usr/bin/python /usr/bin/supervisord
root 4745 4732 0 19:56 ? 00:00:00 /usr/sbin/sshd
これは期待どおりに機能します。これで、コンテナのポート22をホストのポート5000に公開しています。したがってssh -X username@localhost -p 5000
。クライアントとホストが異なるコンピュータであり、異なるネットワーク上にあるときにsshがどのように機能するかを知っていますが、クライアントとホストが同じコンピュータである場合、いくつかの問題があります(私の場合、クライアントは通常のシステムであり、ホストは一般的なシステムのコンテナです) 。 )。私はdockerが私の通常のコンピュータの物理ネットワークデバイスと私のコンピュータの仮想ネットワークデバイスの間にブリッジを作成することを知っています。
しかし、一般的な機械とコンテナは正確にどのように互いに通信しますか?ブリッジングデバイスが割り当てたIPアドレスを介して使用して通信しますか?
このプロセスに関連するポートはどのようにIPアドレスを使用する必要がなくなりますか?
クライアントとホストが同じマシン上にあり、先ほど説明した方法で構成されているときにsshを使用する最も効率的で推奨される方法はありますか?
幅広いインターネット検索では十分な回答が得られませんでした。だからといって、そんなサイトが存在しないと断言することはできません!