2016-12-30 1 views
6

나는이Windows 용 Docker : 컨테이너 IP를 사용하여 호스트에서 컨테이너에 연결하는 방법?

  • 윈도우 10
  • 도커 더 이상 boot2docker 또는 버추얼에 의존하지 않는 윈도우 V. 1.12.5 목사 9503, 대한. , 제이 보스-EAP IP :

    • 예 1 : 이름 172.18.0.3
    • 예를

    나는 도커 이미지에서 실행 JBoss의 인스턴스의 수 (172.18.0.2 데이터베이스입니다)이 2 : 이름 : jboss-eap-arquillian, IP : 172.18.0.4

동시에 실행해야합니다. 각 JBoss 인스턴스는 예를 들어 그것의 8787, 8080 및 8443 항구. 고정 표시기 네트워크는 현재

, 나는 호스트가 액세스 할 수 있도록 로컬 포트 ​​포워딩을 설정 한 --subnet 172.18.0.0/24 bridged_network --driver 브리지를 만들 :

은 또한 브리지 된 네트워크를 만들었습니다 접두어를 사용하는 다양한 서비스 (예 : 인스턴스 1의 포트 8080에 액세스 할 때 호스트는 localhost : 28080을 사용하여 연결합니다). 그러나 그것은 꽤 오류가 발생하기 쉽습니다.

이제 컨테이너 IP를 사용하여 호스트에서 해당 포트에 액세스하려고합니다. 172.18.0.4:8080을 호출합니다 (다음 단계 : 호스트 이름 사용 : jboss-eap-arquillian : 8080). 이 작업이 컨테이너에서 컨테이너로 원활하게 진행되는 동안 호스트에서 연결하도록 설정할 수 없었습니다.

IP 10.0.75.1을 가진 Windows 네트워크 인터페이스 (유형 : DockerNAT)가 있지만 수동으로 만들 수 있습니다 (확실하지 않습니다 ... 지금 당분간 노력하고 있습니다). 컨테이너 포트를이 기기에 바인딩 할 때 유용합니다. 도커 실행 ... -p 10.0.75.1:8080:8080. 그러면 10.0.75.1:8080을 사용하여 서비스를 호출 할 수 있지만 2 번째 컨테이너에는 도움이되지 않습니다.

도커의 호스트 네트워크 장치를 사용해 보았지만 그 주소는 입니다. 하나의 기계에만 작동하는 것 같습니다. b. 정적 구성을 실행하는 JUnit 테스트에 필요한 IP를 정적으로 설정할 수 없습니다. 참고 : 네트워크 (DHCP)를 자주 변경하여 IP가 다시 고정되므로 네트워크 DHCP를 사용하여 시작할 때 IP를 할당 할 수 없습니다.

기본적으로 네트워크/컨테이너를 설정할 수있는 방법을 찾고 있는데 컨테이너 IP (예 : 172.18.0.3)를 사용하여 컨테이너 (예 : 포트 8080)에서 제공하는 서비스를 호출 할 수 있습니다. 예를 들어 172.18.0.3:8080을 사용하는 호스트로부터 1).

+0

는, 즉 고정 표시기 방법 및 휴식 휴대 아니라 더 많은 정보를 원하시면. VM을 원한다면 왜 VM을 사용하지 않는 것이 좋을까요? – user2105103

답변

0

수 없습니다. docker는 가상 머신이 아니며 IP 주소를 통해 도커 호스트에 액세스하지 못합니다.https://forums.docker.com/t/access-dockerized-services-via-the-containers-ip-address/21151

이 여기에, 어떻게 작동하는지 내 실현 :

내 동일 여기에 질문을보고 당신이 당신의 로컬 호스트에서 컨테이너에서 호스팅되는 응용 프로그램을 사용해야 할 경우 https://derickbailey.com/2016/08/29/so-youre-saying-docker-isnt-a-virtual-machine/

는 포트를 노출 docker run

docker run -p 8080:8080 image_name

과의 -p 옵션을 사용하여 응용 프로그램은 다음 localhost:8080 F에 연결 또는 당신이 당신의 방화벽을 구성 할 필요가 당신이 주소 10.0.75.1:8080을 사용할 수 있습니다 창에 대한 고정 표시기에

관련 문제