2016-07-21 17 views
5

os x 10.10でドッカーが更新されました。os xネイティブ仮想化を使用しています。しかし、私はそれが自分のnginxのコンテナ内から私のホストマシンに接続するのは難しいことがわかった。私はこの試みた:Docker for Mac 1.12.0:コンテナからホストに接続する方法

/sbin/ip route|awk '/default/ { print $3 }'

をと答えました:

172.17.0.1

をそれから私は、ドッキングウィンドウ-compose.ymlにこのIPを使用:

extra_hosts: 
    - "master:172.17.0.1" 

しかし、それにもかかわらず、私は続けますエラーが発生する:

172.17.0.1 - - [21/Jul/2016:09:33:46 +0000] "GET /api HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" "-" 2016/07/21 09:33:46 [error] 7#7: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: soc-credit.ru, request: "GET /api HTTP/1.1", upstream: "http://172.17.0.5:8080/api", host: "localhost"

この部分の注記:client: 172.17.0.1。私はホストマシンからリクエストをしたので、最初のステップに入ったipが正しいことを証明します。とにかく接続は確立されていませんでした。

FROM WITHINコンテナをホストに接続する際に問題があることを強調したいと思います。

私は間違っていますか?ありがとうございました!

+0

[MacのDocker Beta:nginxのコンテナにアクセスするためにipを使用できません](http://stackoverflow.com/questions/38340110/docker-beta-on-mac-cannot-use-ip-to-access) -nginx-container) – ldg

+0

MacはLinuxカーネルを持っておらず、VBの代わりにxhyveを使用しており、UNIXのソケットを使っているので、ドキュメントによると "残念なことに、 OSXでは、トラフィックをコンテナに、コンテナからホストにルーティングすることはできません。 [ここ](http://stackoverflow.com/questions/38340110/docker-beta-on-mac-cannot-use-ip-to-access-nginx-container/38341896#38341896)と[here](http: //stackoverflow.com/questions/38292965/getting-to-the-files-system-of-the-alpine-linux-which-runs-docker-for-mac/38299498#38299498)。 – ldg

+0

質問者がホストマシンからコンテナに接続するのが難しいと思います。または私は間違いをしたことがありますか? – Skeeve

答えて

3

私は同じ問題を抱えていると私は私が持っていないこの

https://docs.docker.com/docker-for-mac/networking/#/known-limitations-use-cases-and-workarounds

お知らせ段落「私はホスト上のサービスへのコンテナから接続したい」

を見つけました私はより具体的な解決策を探しているので、それを試しました。(とにかく私の住所にエイリアスを追加する以外に)...

誰かがそれに何かを持っているならお知らせください!

+1

まあ、私は実際にドッカーマシンに戻ってきましたが、それに反対する人たちには、議論の余地がある解決策が見つかりました: '$(ipconfig getifaddr en0)'。私は答えとして掲示したくありません。なぜなら、あなたは再起動が必要なネットワークを変更した後で、ドッカーの作成やそれ以上のものでは使いにくいからです。 – Skeeve

+1

@Skeeve私はdocker-compose(ほとんどのサービスで)を使用しているので、私はドキュメントの提案と 'sudo ifconfig lo0 alias 10.200.10.1/24'を使用しました。 con(開発中のもの)は開発中です。再起動した場合は別名を再度設定する必要があります。 – kostia

+0

私はこの解決策が今のところ好きです。これを.bashrcまたは.zshrcに追加すると、正常に動作します。私は、lo0インタフェースの可能性のある競合についてより懸念しています。出来ますか? – Skeeve

6

Dockerとネットワークの設定で同じ問題があり、経験の浅かったので、私はさまざまな提案されたソリューションを動作させるのに苦労しました。しかし、Docker for Macのアップデート以来: 私はMacのホスト上で動作しているサービスにコンテナから連絡することができます: Docker Community Edition 17.06.0-ce-mac18, 2017-06-28 (stable) 私は '実験的な'ホスト名を使用して見つけました。非常にデベロッパーに便利!

関連する問題