2017-07-11 27 views
2

ECSにはいくつかのドッカーコンテナが配備されています。コンテナ内のアプリケーションはリモートサービスを使用するため、10.X.X.XプライベートIPを使用してアクセスする必要があります。Docker:ホストからリモートマシンにtelnetで接続できますが、コンテナからは接続できません

CentOS 7とdocker/alpineをベースイメージとしてDocker 1.13を使用しています。当社の容器にはnetwokMode: hostも使用しています。この問題はホストマシンからtelnet 10.X.X.X 9999を正常に実行できたときに発生しますが、コンテナ内から同じコマンドを実行するとハングアップして接続できなくなります。

さらに、ホストマシン(コンテナが実行されている)ではリモートマシンでnet.ipv4.ip_forwardが有効になっていますが、無効になっています。

何が問題になるかわからない、おそらくiptables

答えて

2

私は同じ問題(ネットワークモード 'ブリッジ'と 'ホスト'の両方で試してみました)でこの日を過ごしました。そして、ECSの内部でbusyboxのtelnetを使用する際の問題のように見えます - アルパインのtelnetはbusyboxへのシンボリックリンクです。私は根本的な原因を示唆するためにビジーボックス/ネットワーキングについては十分に分かっていませんが、他のツールを使用してネットワークパスが明確であることを証明できました。

ネットワークパスをテストするための私の「go to」は、以下のようにnetcatを使用しています。 '成功'または '失敗'のメッセージはバージョンによって異なりますが、拒否またはタイムアウト(-w#)はかなり明白です。すべてのnetcatはここでソケットを要求します - 実際にはリッスンするアプリケーションとは話しませんので、テストするために何か必要があります。

nc -vz -w2 HOST PORT 

今日の私の問題は、アプリのmongo接続のトラブルシューティングでした。 ncはパスが明確であることを示しましたが、Telnetはあなたが報告したのと同じ問題を持っていました。私はmongoクライアントをインストールしてそれをチェックしてしまい、正しく接続することができました。

実際にECSコンテナの中からtelnetでコマンドを実行する必要がある場合は、おそらく別のtelnetツールをインストールして、ビジーボックスinbuiltを避けてください。

関連する問題