code

Docker Toolbox-Localhost가 작동하지 않음

codestyles 2020. 11. 19. 08:15
반응형

Docker Toolbox-Localhost가 작동하지 않음


그래서 저는 Windows 10 pro가 아니기 때문에 내 컴퓨터에 Hyper-V가 없기 때문에 Docker Toolbox를 사용하고 있습니다. 모든 것이 잘 작동하는 것 같지만 브라우저로 이동하려고 0.0.0.0:80하면 항상 나를 반환합니다.이 사이트에 연결할 수 없습니다.

그러나 명령을 실행하면 docker container ps다음 0.0.0.0:80->80/tcp이 표시됩니다.이 주소가 작동해야 함을 의미합니다. 나는 stackoverflow 및 github 문제를 검색했습니다. 이제 막혔습니다.

내가 뭔가를 놓치고 있습니까?

고마워, 마크

편집하다:

사용하면 docker-machine ip default나를 반환합니다 192.168.99.100. 포트 80에서 실행합니다. 주소가 컨테이너 ID가되는 것을 제외하고는 여전히 동일한 결과를 얻습니다.https://fd677edg12

cmd에서 해당 명령을 실행하여 ipv4 : cmd /k ipconfig /all. 포트와 함께 결과를 넣으면 동일한 결과가 반환됩니다.https://fd677edg12


Docker Toolbox는 Windows 용 Docker만큼 편리하지는 않지만 Home Edition을 사용하기 때문에 올바르게 사용하고 있습니다.

도구 상자에서 아무 것도 없을 것 localhost등이 될 것이다 192.168.99.100는 버추얼 박스에서 리눅스 VM을 실행중인 때문에, 기본적으로.

따라서 실행하면 docker run -p 80:80 nginx

( 192.168.99.100해당 포트에서 수신 하기 위해 포트를 게시해야했습니다. )

그럼 http://192.168.99.100작동해야합니다.


DockerToolBox 및 OracleVM VirtualBox를 사용하는 동안 localhost : 8080에서 내 애플리케이션에 액세스하는 데 처음에는 몇 가지 문제가있었습니다.

VirtualBox에서 :

  1. 적절한 컴퓨터를 클릭합니다 (아마 "기본값"이라고 표시된 컴퓨터).
  2. 설정
  3. 네트워크> 어댑터 1> 고급> 포트 전달
  4. 새 규칙을 추가하려면 "+"를 클릭하십시오.
  5. 호스트 포트 8080및 게스트 포트 설정 8080; 호스트 IP와 게스트 IP는 비워 두어야합니다.

다음 명령을 실행하십시오.

docker run -p 8080:8080 ${image_id}

https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell 에서 Windows 자습서에 대한 docker를 따르고 웹 브라우저에서 nginx를 테스트 할 때 # 6 단계에서 멈췄습니다. . Windows Home도 사용하고 Hyper-V가 없기 때문에 비슷한 문제에 직면 한 것 같습니다. 내 해결 방법은 매우 간단합니다.

  1. 도커 IP 기본값 확인

$ docker-machine ip 기본값

192.168.99.100

  1. Oracle Virtual Machine으로 이동하여 포트 전달을 설정합니다. 네트워크 설정이 NAT인지 확인하고 포트 전달을 추가합니다. 호스트 IP : 127.0.0.1, 고객 IP : 192.168.99.100, 80 포트 모든 설정 이 같은

  2. 브라우저에 다시 시도하고 http : // localhost 또는 http://127.0.0.1을 실행 합니다 (포트 80도 추가 할 수 있음). 실행되어야합니다.

문제는 nginx IP가 도커 가상 머신 내에서 액세스 할 수 있도록되어 있으므로 호스트 머신의 브라우저에서 직접 액세스하려면 해당 포트 포워딩 설정이 필요합니다.


localhost지침에 따라 '192.168.99.100'대신 사용할 수 있습니다 .

단계 # 01 :

docker-machine ip default

기본 IP가 표시됩니다.

2 단계 :

docker-machine stop default

단계 # 03 :

  1. VirtualBox Manager를 엽니 다 (Windows의 시작 프로그램에서 VirtualBox Manager).
  2. Docker Machine VirtualBox 이미지를 선택합니다 (예 : 기본값).
  3. 설정-> 네트워크-> 고급-> 포트 포워딩을 엽니 다.
  4. 앱 이름, 원하는 호스트 포트 및 게스트 포트를 추가합니다. i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80

단계 # 04 : 이제 다음을 실행하여 Docker 머신을 시작할 준비가되었습니다.

docker-machine start default

그런 다음 Docker 컨테이너를 시작하면 localhost를 통해 액세스 할 수 있습니다.

Have a look here for details.


To map the ports expected to localhost instead of hitting the docker-machine IP directly, you can use the VirtualBox CLI.

If the docker-machine VM (here called default) is running, add and delete rules like this:

> VBoxManage.exe controlvm "default" natpf1 "nginx,tcp,,8888,,8888"
> VBoxManage.exe controlvm "default" natpf1 delete nginx

If the VM is not running, or you want to stop before altering it:

> docker-machine stop
> VBoxManage.exe modifyvm "default" --natpf1 "nginx,tcp,,8888,,8888"
> VBoxManage.exe modifyvm "default" --natpf1 delete "nginx"
> docker-machine start

Where the format of the port forwarding rule is [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>.

Note that in VirtualBox, you want to map to the host port of Docker map, not the internal container port. You're mapping host -> VM, then Docker maps VM -> container.

See the VirtualBox docs.

참고URL : https://stackoverflow.com/questions/42866013/docker-toolbox-localhost-not-working

반응형