2016-07-04 6 views
2

私のマシンにDockerをインストールしました& Nginx/PHP7(FPM)/ MySQLのセットアップは正常ですが、XdebugをPHPコンテナにインストールすると入手できませんそれは私のホストマシン上のPHPStormに接続するためです。XdebugはDockerホストに接続できません

はここでXdebugをしてコンテナのクッキーのセットを有効にする、...私のPHPはXdebugの設定です

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts- 
20151012/xdebug.so 
xdebug.remote_log=/usr/local/var/log/xdebug.log 
xdebug.remote_enable=1 
xdebug.remote_host=192.168.99.1 
xdebug.remote_port=9000 
xdebug.remote_connect_back=1 
xdebug.remote_handler=dbgp 
xdebug.remote_mode=req 
xdebug.remote_autostart=true 

閲覧、接続のためのプロンプトはありません。ローカルにホストされているサイトを閲覧すると、PHPStormが正しく聞いていることがわかります。

ローカルマシン上で、私は...ポート9000へ

$ telnet 192.168.99.1 9000 
Trying 192.168.99.1... 
Connected to 192.168.99.1. 
Escape character is '^]'. 
^] 
telnet> quit 
Connection closed. 

をtelnetで接続することができますが...しかし、私はできませんboot2docker VM、またはコンテナのいずれかから。私が試してみると、何もしないで座っているだけです。ただし、VMとコンテナの両方で、ホストマシンに対してpingを正常に実行できます。

私はMacのファイアウォールを無効にしようとしましたが、まだ喜んでいません。

boot2docker VMでファイアウォールを無効にする方法がわかりません。

これがうまくいかない理由についての洞察は、大いに歓迎されます。前もって感謝します。

答えて

0

DockerホストからMacにブリッジされたネットワークを使用する必要があります。 Macではifconfigを実行し、他のローカルネットワーク上のローカルIPを探します(10.0.1.13など)。 (詳細はドッカーのバージョンによって異なる場合がありますが、これはドッカーホストとしてベイグラントで働いていたし、ほとんどのために働く必要のVM)

+0

感謝を参照してください。ワイヤレスアダプターにブリッジ付きn/wアダプターを追加しました。ドッカーVM内にIPアドレス192.168.1.18(ホストは192.168.1.6)という新しいアダプターが表示されますが、まだtelnetできませんVMまたはコンテナ。これを正しく設定する方法の詳細を教えてください。 – TobyG

+0

別のブリッジが必要ではありません。あなたは別のポートを試しましたか? FPMは9000を使用している可能性があります。 10000などを試してみてください。あなたのMacで 'nc -l 8888'を実行し、コンテナからtelnetでxdebugとは独立して動作することを確認することもできます。 – ldg

+0

VMを再構築しました。私は他のすべてを試しました。最後に、VMを削除し、すべてのホストのみのネットワークを削除し、VMを再作成しました。他のすべてが失敗したら...再起動! – TobyG

1

Xdebugのは、コンテナ内の設定をお勧めします:ドッカー-17.06以降

zend_extension = xdebug.so 
xdebug.remote_enable = 1 
xdebug.remote_connect_back = 0 
xdebug.remote_host = docker.for.mac.localhost 
xdebug.remote_port = 9000 
xdebug.remote_handler = dbgp 
xdebug.remote_mode = req 
xdebug.remote_autostart = 1 
xdebug.idekey = PHPSTORM 

、あなたは私は、ホスト上のサービスにコンテナから接続したいdocker.for.mac.localhost

:静的ホスト名を経由して、コンテナ内のMac上でホストされているサービスにアクセスすることができますか?
MacのIPアドレスは変更されています(ネットワークにアクセスできない場合はありません)。 17.06以降、ホストが使用する内部IPアドレスに解決される特別なMac専用DNS名docker.for.mac.localhostに接続することをお勧めします。

は先端のためhttps://docs.docker.com/docker-for-mac/networking/#i-cannot-ping-my-containers

関連する問題