2016-04-08 6 views
1

コンテナ内に/ rest/getMailにバインドされたJSON文字列を返すREST APIがあります。Docker:can not open port 8080

curl localhost:8080/rest/getMailを問題なく使用して、このAPIをコンテナ内で呼び出すことができます。

しかし、すでにポートを公開して外部ポートへのバインド(docker run -d -i -p 2500:8080 myimageまたはdocker run -d -i --expose 8080 -p 2500:8080 myimage)を行っても、このAPIを外部から呼び出すことはできません。それは示す:接続が拒否されました。問題になることが何curl 172.17.0.2:8080/rest/getMail

私も同様にIPアドレスを使用して、APIを呼び出すことはできませんか?本当に変だ。 ありがとうございます。

編集:

私はcurl localhost:2500を行うと、それは示しています

curl: (56) Recv failure: Connection reset by peer 

そしてtelnet localhost:2500

Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
Connection closed by foreign host. 

curl localhost:2500/rest/getMailは私に同じ結果を与えました。

答えて

1

host_ip:host_portのURLを入力する必要があるようです。 2番目のcurlコマンドをホスト上で実行していますか?その場合、ポートはマップされたポート(例:2500)にする必要があります。

あなたがホスト上でこれを実行してみてくださいことができます:チェックする

curl localhost:2500/rest/getMail

もう一つは、あなたがこの接続をブロックしているホスト上の任意のファイアウォールを持っているかどうかだろう。

+0

はい、私は2番目の(curl localhost:2500/rest/getMail)はまったく動作しませんでした。 – brest1007

+0

ええと、あなたはそれがうまくいかないということを説明してください。いくつかの情報が非常に役立つだろう! :)また、 'telnet localhost 2500'を試して出力を投稿できますか? – gsaslis

+0

okありがとうございます、あなたは正しいと思いますが、ポートは実際に開いていますが、私はAPIにアクセスできません。しかし、私がコンテナの中から呼び出すと、それはうまく機能します。 – brest1007