2016-04-11 15 views
2

上のポートに転送:Port mapping in Docker on Mac OSX installed with Docker Toolboxアクセスドッカーは、ここに関連する投稿がありマック

は、それがために動作しませんでした私

入手コンテナ用のポート

ドッカポート485186e65a5e

8080/tcp -> 0.0.0.0:33360 
8088/tcp -> 0.0.0.0:33359 
19888/tcp -> 0.0.0.0:33358 
50070/tcp -> 0.0.0.0:33357 
50075/tcp -> 0.0.0.0:33356 
8042/tcp -> 0.0.0.0:33361 

コンテナ内のポートをリッスンすることを確認してください。

bash-4.1# netstat -alnpt | grep 19888 
tcp  0  0 127.0.0.1:19888    0.0.0.0:*     LISTEN  1094/java 

容器にwgetコマンドを実行してください

bash-4.1# wget 127.0.0.1:19888 
--2016-04-11 14:16:54-- http://127.0.0.1:19888/ 
Connecting to 127.0.0.1:19888... connected. 
HTTP request sent, awaiting response... 302 Found 
Location: http://127.0.0.1:19888/jobhistory [following] 
--2016-04-11 14:16:54-- http://127.0.0.1:19888/jobhistory 
Reusing existing connection to 127.0.0.1:19888. 
HTTP request sent, awaiting response... 200 OK 
Length: 6763 (6.6K) [text/html] 
Saving to: `index.html' 

100%[================================================================================================================================================================================>] 6,763  --.-K/s in 0s  

2016-04-11 14:16:54 (182 MB/s) - `index.html' saved [6763/6763] 

アクセスしようとするが...、ホストからの運をポートに転送されない:(((

$docker-machine ip default 
192.168.99.100 
$ wget 192.168.99.100:33358 
--2016-04-11 16:18:04-- http://192.168.99.100:33358/ 
Connecting to 192.168.99.100:33358... failed: Connection refused. 

私は何をすべきか間違っている?

答えて

3

0mg、希望サービスは127.0.0.1のコンテナーで開始されたため、外部からは見えませんでした。私はサービス設定を0.0.0.0から開始するように変更しましたが、今度は転送されたコンテナポートにアクセスできます

+0

コンテナを0.0.0.0で開始するように設定しましたか? –

+0

私はコンテナの中で実行している私のWebサービスについて話していました。そのサーバーは127.0.0.1で開始したので、コンテナの外側には表示されません。 – Sergey

1

私は同じ問題を抱えていて、コンテナ内のサーバが使用するホストを指定することで修正できました。

注:ホストを使用している場合は、Webサーバーホストを意味します。私はホスト・マシンを使用する場合、私は、使用しているメインのオペレーティングシステムを意味する(すなわちないコンテナまたはWebサーバーマシンとして、ちょうど私のラップトップ)

問題

webpack-dev-serverhttp-serverのようなコンテナでWebサーバーを実行すると、http://localhostのホストを使用して自動的にアプリケーションが実行されます。通常は、サーバーの起動時に出力に表示されます。何かのように:

Project is running at http://localhost:8080

またはほとんどのマシンでは

Server available at http://127.0.0.1:8080

localhost127.0.0.1は同じものです。このホストはで、公開されていませんです。結果として、ホストマシンは正しい場所を探していても何も見ることができません。あなたのコンテナ内でサーバを実行するときは、パブリックホストを指定する必要があります

ソリューション

webpack-dev-server --port 8080 --host 0.0.0.0

または

http-server -p 8080 -a 0.0.0.0

0.0.0.0アドレスは、任意の外部のマシンに閲覧可能ですので、ご使用のホスト・マシンから予想されるように、アプリが動作して見ることができるはずです。

注:これはちょうどドキュメントで選択したサーバー用

リソースをホストを変更する方法を調べるなど、PythonのSimpleHTTPServer、同様に、任意のサーバのために働く/ノドス (実行する方法のWebPACK -dev-erverと公的にアクセス可能なホスト)[How to make the webpack dev server run on port 80 and on 0.0.0.0 to make it publicly accessible?

関連する問題