가지고 놀다가 docker
이상한 것을 발견했습니다 (적어도 나에게는). 다음과 같이 컨테이너를 만들었습니다.
docker run -p 8080:80 nginx
그리고 내가 무엇을 시도하든 상관 없습니다. 에서 아무것도 볼 수 없습니다 http://localhost:8080
. 마침내 나는 내가했다는 것을 알아 냈다
eval $(docker-machine env foo)
다른 기계로 전환했습니다. 기본 컴퓨터로 다시 전환하면 HTTP 서버가 다시 정상적으로 작동합니다.
누군가 이것이 왜 그런지 설명 할 수 있습니까?
Mac 1.12 용 Docker를 사용하고 있습니다.
귀하의 정보에서 Docker 도구 상자를 사용하고 있다고 추측 할 수 있습니다 (아마 VirtualBox 포함). Docker 도구 상자는 Linux 호스트 (boot2docker 이미지 기반)를 만들고 해당 호스트 내에서 nginx 컨테이너를 실행합니다. 는 -p 8080:80
8080의 nginx에 포트 (80)를 보냅니다 호스트에 . 따라서 컴퓨터에서 액세스하려면 http : // HOST-IP-ADDRESS : 8080 을 사용해야 합니다.
다음을 사용하여 호스트 IP를 찾을 수 있습니다. docker-machine ls
Docker 도구 상자의 대안은 Mac 용 Docker 또는 Windows 용 Docker (google)를 사용하는 것입니다. 이렇게하면 VirtualBox가 필요하지 않습니다. 컴퓨터는 본질적으로 Docker 컨테이너를 실행하는 호스트가됩니다. 이 경우 실행 http://localhost:8080
하면 nginx 서버가 제공됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다