1. ホーム
  2. bash

docker コンテナからホストの ssh トンネルにアクセスする。

2023-10-08 15:14:05

質問

ubuntu tusty を使用して、リモートマシンで動作しているサービスがあり、ポートフォワーディングで ssh トンネルを経由して localhost:9999 .

dockerコンテナを走らせています。コンテナ内からホストのトンネルを経由して、そのリモートサービスにアクセスする必要があるのですが。

コンテナからホストへのトンネルを -L 9000:host-ip:9999 でトンネルして、それから 127.0.0.1:9000 を経由してサービスにアクセスすると、接続に失敗します。ポートマッピングがオンになっているかどうかを確認するために、以下のようにしてみました。 nc -luv -p 9999 # at host nc -luv -p 9000 # at container

次のように この、parag. 2 を実行しても、知覚されるコミュニケーションはありませんでした。 nc -luv host-ip -p 9000 を行っても、コミュニケーションがとれない。

また、ポートのマッピングを docker run -p 9999:9000 を使用してもみましたが、これはホストポートがすでに使用されているため (おそらくホストトンネルからリモートマシンへの) バインドに失敗したと報告しています。

そこで私の疑問は

1 - どのように接続を実現するのでしょうか? ホストへの ssh トンネルをセットアップする必要がありますか、それとも docker ポートマッピングだけで達成できますか?

2 - 接続が確立されているかどうかをテストする簡単な方法は何でしょうか?できれば bash 経由で。

ありがとうございます。

どのように解決するのですか?

を追加することでできると思います。 --net=host を追加してください。しかし、この質問も参照してください。 dockerコンテナにホストポートを転送する