2016-08-23 3 views
1

Windows 용 Docker를 사용하고 있습니다. (VM을 사용하는 Docker Toolbox를 사용하고 있지는 않지만) 로컬 네트워크의 다른 컴퓨터에서 컨테이너를 볼 수 없습니다. 내 호스트에서 모든 것이 완벽하고 잘 실행되지만 다른 사람들이 내 컨테이너를 사용하기를 원합니다.로컬 네트워크의 다른 컴퓨터에서 도커 컨테이너에 액세스하는 방법

same question in Docker's Forum을 게시 했음에도 불구하고 답변에 표시되지 않았습니다. 또한 여기에서 찾고 있었지만 솔루션은 가상 시스템에서 브리지 옵션을 설정하는 것으로 나타났습니다. 이전에 말씀 드렸듯이 가상 시스템을 사용하지 않는 Windows 용 Docker를 사용하고 있습니다.

도커 버전 명령

Client: 
Version:  1.12.0 
API version: 1.24 
Go version: go1.6.3 
Git commit: 8eab29e 
Built:  Thu Jul 28 21:15:28 2016 
OS/Arch:  windows/amd64 

Server: 
Version:  1.12.0 
API version: 1.24 
Go version: go1.6.3 
Git commit: 8eab29e 
Built:  Thu Jul 28 21:15:28 2016 
OS/Arch:  linux/amd64 

고정 표시기 추신 -a

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS           NAMES 
789d7bf48025  gogs/gogs   "docker/start.sh /bin" 5 days ago   Up 42 minutes  0.0.0.0:10022->22/tcp, 0.0.0.0:5656->3000/tcp gogs 
7fa7978996b8  mysql:5.7.14  "docker-entrypoint.sh" 5 days ago   Up 56 minutes  0.0.0.0:8989->3306/tcp       mysql 

내가 사용하고자하는 컨테이너 포트 5656.

내가 localhost를 사용하고있다 gogs입니다 : 5656 y 127.0.0.1:5656 제대로 작동하지만 다른 컴퓨터에서 내 로컬 네트워크 IP (192.168.0.127)를 사용하는 경우 컨테이너에 연결할 수 없습니다.

미리 감사드립니다.

+1

Windows 용 Docker는 여전히 가상 컴퓨터 (Hyper-V 가상 컴퓨터)를 사용합니다. 아마도 이것은 도움이 될 것입니다. http://www.thomasmaurer.ch/2015/11/hyper-v-virtual-switch-using-nat-configuration/ –

+0

@techraf 예 방화벽이 불가능합니다. 3306은 mysql의 컨테이너에서 가져온 것이지만 8989로 매핑하고있다. 3309의 visivility로 무엇을 의미하는지 아마 다른 네트워크에서 3000 포트에 액세스 할 수 있는지 말할 수있다. 그렇다면 3000 번에 액세스 할 수 없습니다. –

답변

4

솔루션 :

Windows 용 Docker를 설치하면 이라는 네트워크가 생성됩니다. vEthernet (DockerNAT) (일반적으로 ip 10.0.75.1)

내 로컬 컴퓨터에 로컬 영역 연결이라는 IP (192.168.0.172)를 가진 네트워크가있었습니다 (이 IP로 다른 PC에서 액세스하려고했습니다). 내가 제어판>네트워크 및 공유 센터>어댑터 설정 변경에 갔다 있도록

지금까지 내 로컬 컴퓨터는 내가 두 네트워크를 선택하고 내가 마우스 오른쪽 버튼으로 클릭에 추가 을 선택한 두 네트워크 Conections했다 bridge. 그러면 이더넷이라는 세 번째 네트워크가 생성됩니다. 이 시점에서

) 나에게 IP를 192.168.0.17 ( 로컬 영역 연결vEthernet (DockerNAT의 설정을 보여 그을 나는 이더넷 네트워크의 IP 뭔지 몰랐어요, 그래서 나는 ipconfig 명령을 실행 사라지고 ips 10.0.75.1 및 192.168.0.172는 작동을 멈 춥니 다.)

이 새로운 ip (192.168.0.17)로 네트워크의 다른 컴퓨터에서 연결을 시도하고 마침내 컨테이너 (192.168.0.17:5656)에 액세스 할 수있었습니다.

0

이 명령을 사용하여 고정 표시기 호스트 해결하기 :

echo $DOCKER_HOST 

그것은 아마있을 것입니다 뭔가 tcp://192.168.99.100/2376 등을 그래서 당신의 gogs 컨테이너에 대한 URL은 http://192.168.99.100:5656

+1

** echo $ DOCKER_HOST **를 사용하면 아무 것도 인쇄되지 않습니다. –

0

Hyper-V 설정에서 "Docker NAT"네트워크를 "외부"모드로 설정하면 효과적입니다.(내 호스트의 IP로 내 로컬 네트워크의 컨테이너에 액세스 할 수 있습니다.)

관련 문제