2016-07-04 3 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이 올바르게 듣고 있음을 알 수 있습니다.

로컬 컴퓨터에

, 나는 그러나 나는 boot2docker VM 또는 컨테이너 중 하나에서 할 수없는 ... ... 포트 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. 

를 텔넷 수 있습니다. 나는 그것을 시도 할 때 아무 것도하지 않고 앉아있다. 그러나 VM과 컨테이너 모두 호스트 시스템을 핑 (ping) 할 수는 있습니다.

나는 내 Mac의 방화벽을 비활성화하려고했지만 여전히 기쁨이 없습니다.

boot2docker VM에서 방화벽을 비활성화하는 방법을 잘 모르겠습니다.

이것이 작동하지 않는 이유에 대한 통찰력이 크게 환영받을 것입니다. 미리 감사드립니다.

답변

0

Docker 호스트에서 Mac으로 연결되는 네트워크를 사용해야합니다. Mac에서 ifconfig을 수행하고 다른 로컬 네트워크에서 로컬 IP를 찾으십시오 (예 : 10.0.1.13). (. 구체적인 내용은 부두 노동자의 버전에 따라 다를 수 있지만,이 부두 노동자의 호스트로 방랑과 협력하고 대부분의 작업을해야 VM의)

+0

감사를 참조하십시오. 무선 어댑터에 브리지 어댑터를 추가했는데 IP 주소 192.168.1.18 (호스트는 192.168.1.6) 인 docker VM에서 새 어댑터를 볼 수 있지만 여전히 텔넷에서 연결할 수 없습니다 VM 또는 컨테이너 이 문제를 올바르게 설정하는 방법에 대한 자세한 정보를 제공 할 수 있습니까? – TobyG

+0

다른 다리가 필요하지 않습니다. 다른 항구를 시도 했니, btw? FPM이 9000을 사용하고있어 충돌 할 수 있습니다. 10000 또는 유사하게 사용해보십시오. 맥에서'nc -l 8888'을, 컨테이너에서 텔넷으로 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의 IP 주소가 변경되었습니다 (네트워크에 액세스 할 수없는 경우 없음). 17.06부터는 호스트가 사용하는 내부 IP 주소로 해석되는 Mac 전용 DNS 이름 인 docker.for.mac.localhost에 연결하는 것이 좋습니다.

는 팁을위한 https://docs.docker.com/docker-for-mac/networking/#i-cannot-ping-my-containers

관련 문제