2017-02-19 6 views
1

内からローカルホスト上で実行中のサービスをヒット、私はローカルホスト上で私のマシン上で実行されているサービスを持っている:8000私はマックOSによドッキングウィンドウの画像

今私がドッキングウィンドウのイメージを起動してから、このサービスをヒットしたいですここに。

私はドッカーブリッジを使用し、内部から使用していますが、動作していません。 は、ここに私の手順は次のとおりです。

私のホストのIP

curl localhost:8000 #this is working! 

私はブリッジを作成し、私はそれを使用します:私はホストからの私のサービスを打つ

ifconfig 

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether 98:01:a7:b0:2b:41 
    inet 192.168.0.70 netmask 0xffffff00 broadcast 192.168.0.255 
    media: autoselect 
    status: active 

docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 dockernet 
docker run --rm -it -v "$(pwd):/src" --network=dockernet qatests /bin/bash 

ドッカーの中から、カールしますが動作していません:

curl 192.168.0.1:8000 #it's not working :-(

任意のアイデア?

+0

は、ローカルホストまたはすべてのインターフェイス上で実行されているサービスですか? ss -tnlまたはnetstat -tnlの出力は何ですか? –

+0

私はあなたが探しているものは信じていると思います[Dockerコンテナの内部から、どのようにマシンのローカルホストに接続しますか?](http://stackoverflow.com/a/24326540/2127492) – jrbeverly

答えて

1

、I私は私のPCのIPをpingすると、私はドッカーの画像からでもそれを見ることができることを発見しました。便宜上 は、私は私がlunchingされなかったものをだから、アドレス lounchスクリプトの魔女は私の現在のIPを取得し、「mymac」の下で、私のIPがアクセスできるドッキングウィンドウのイメージを起動しました、私は今、ランチできるドッキングウィンドウの内側

MY_IP=$(ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}') 

docker run --rm -it -v "$(pwd):/src" --add-host=mymac:$MY_IP qatests 
/bin/bash 

curl mymac:8000 #it works! now mymac is my pc outside docker 
1

新しいネットワークを作成する必要はありません。デフォルトのもの(ブリッジ)を使用できます。

ちょうど(私の場合は172.17.42.1ある)ipifconfigであなたのホストにdocker0インターフェイスに関連付けられているIPチェックし、コンテナ内部からそのIPを使用します。最後に

$ curl 172.17.42.1:8000 
関連する問題