2016-07-01 3 views
0

로컬 컴퓨터에서 내 웹 앱을 실행하기 위해 도커를 사용하고 있으며 호스트 컴퓨터에서 SoapUI를 사용하여 조롱 된 웹 서비스를 만들었습니다.Docker가 호스트 포트의 조롱 된 서비스에 연결

조롱 된 서비스는 localhost : 8099 및 IP 127.0.0.1:8099 (텔넷 사용)를 통해 액세스 할 수 있지만 실행중인 고정 컨테이너에서 액세스 할 수는 없습니다.

나는 결과

ip addr show docker0 

을 통해 발견 호스트 IP 주소에 대한 몇 가지 기사를 읽고 :

5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:e3:36:43:5b brd ff:ff:ff:ff:ff:ff 
    inet 172.17.0.1/16 scope global docker0 
     valid_lft forever preferred_lft forever 
    inet6 fe80::42:e3ff:fe36:435b/64 scope link 
     valid_lft forever preferred_lft forever 

난 그냥 OK 반응을 얻고 고정 표시기 컨테이너에서 IP 172.17.0.1 ping을 시도했지만 웹 응용 프로그램에서 조롱 된 웹 서비스를 호출하려고하면 응답이 No route to host이됩니다.

또한 iptables -A INPUT -i docker0 -j ACCEPT을 사용하여 iptables를 수정하려고했지만 성공하지 못했습니다.

다른 설정이 있습니까?

도움을 주시면 감사하겠습니다.

감사합니다, 시몬 내가 질문을 읽었다면

+0

어떤 OS를 사용하고 있습니까? Linux의 경우 호스트 컴퓨터의 실제 IP 주소를 사용해보십시오. 나는'docker0'을 기반으로하는 리눅스라고 생각합니다. 귀하가받는 IP 주소는 호스트 외부에서 액세스 할 수없는 Docker 네트워킹 및 링크 용 Docker에 의해 할당 된 컨테이너의 내부 IP입니다. – techtabu

+0

어떤 컴퓨터에서'ip addr ... '명령을 실행하고 있습니까? – johnharris85

+0

@J 하리스 - 호스트 컴퓨터 (우분투)에서'ip addr..' 명령을 실행합니다. – shimon001

답변

0

은 바로 지역 및 호스트 컴퓨터는 동일한 시스템이 아니다. 어떤 경우에는 (localhost : 8099에서 터널을 설정하지 않는 한) localhost를 사용하는 호스트 컴퓨터의 mocker 서비스에 액세스 할 수 없으며 로컬 컴퓨터의 로컬 IP로 확인됩니다. .

두 컴퓨터가 서로 통신하고 localhost 대신 호스트 컴퓨터 IP를 사용할 수 있는지 확인해야합니다.

+0

안녕하세요, 제 호스트 컴퓨터가 우분투이고, 도커 컨테이너를 실행합니다 (물리적으로 실행합니다). 내 컴퓨터에서. – shimon001

+0

docker ps의 결과는 무엇입니까? 편집 : docker inspect --format {{.NetworkSettings.IPAddress}} '명령을 사용하여 도커 컨테이너의 IP 주소를 가져올 수도 있습니다. '이것은 상황을 디버그하는 데 도움이 될 수 있습니다. – tommyyards

+0

결과는'172.17.0.3'입니다. 그러나이 방법을 사용하여 문제를 디버깅하는 방법을 모르겠습니다. – shimon001

관련 문제