2017-03-21 9 views
1

私はMacでドッカーを実行しています。私のドッカーはcentosを実行していて、ifconfigはeth0アドレスが "172.17.0.2"であることを示しています。ドッキングホストはホストにpingを実行できますか?

私は端末にこの172.17.0.2をpingしようとしましたが失敗しました。 "docker run"コマンドを使用する以外は、sshdのようなサービスでコンテナにアクセスする方法はありますか?

私はインターネットを検索し、ポートマッピングを見つけたので、私はそれを実行するために「-P」オプションを追加しました:

docker run -itP centos6.5 bash 

それはランダムなポートマッピング権を割り当てる必要がありますか?しかし、listコマンドが

docker container list 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 
136ab365eddd  centos6.8_dev  "bash"    11 seconds ago  Up 10 seconds       practical_wilson 

(ビットスクロール持って)以下のような、任意の「ポート」の情報が表示されません。これは奇妙です:ポートマッピングが動作しない理由は?

$tcping localhost 5000 
localhost port 5000 closed. 
+0

あなたはpingできるはずです。 'docker inspect -f '{{.NetworkSettings.IPAddress}}' your_container'を実行してコンテナipを取得できます。 -Pはあなたのイメージで公開されているとマークされたポートにランダムなポートを割り当てます。したがって、pingは異なるプロトコルを使用するため、何もしません。 – user3012759

答えて

2

は、ホストのpingそのコンテナをドッキングウィンドウことができます:私はtcpingを試してみましたか?

なし。

Macでは、少なくとも。

とLinux上では、それは偶然にしか動作せず、とにかく行うべきことではありません。

Docker isn't a virtual machineのように扱われるべきではありません。代わりに、仮想アプリケーションと考えるべきです。

tcp/ipポート経由でサービスに入る必要がある場合は、ポート番号をコンテナからマップする必要があります。 1234

docker run -p 1234:1234 my-image

は、TCP/IPポートです。

これは、ホストマシン上でlocalhost:1234で受信するサービスを作成します。

関連する問題