Więc używam Docker Toolbox, ponieważ nie mam Hyper-V na moim komputerze, ponieważ nie jest to Windows 10 pro. Wygląda na to, że wszystko działa dobrze, ale kiedy próbuję przejść do przeglądarki 0.0.0.0:80
, zawsze zwraca mnie: Ta strona nie jest dostępna
Ale kiedy uruchamiam polecenie: docker container ps
otrzymuję: 0.0.0.0:80->80/tcp
co oznacza, że ten adres powinien działać. Przeszukałem problemy związane ze stosem i githubem. Teraz utknąłem.
Czy coś mi brakuje?
Dzięki, Mark
EDYTOWAĆ:
Użycie docker-machine ip default
zwraca mnie 192.168.99.100
. Uruchamiam to na porcie 80. Nadal otrzymuję ten sam wynik, z wyjątkiem tego, że adres staje się identyfikatorem kontenera:https://fd677edg12
Biegnę, że na polecenie cmd, by znaleźć swoje IPv4: cmd /k ipconfig /all
. Umieść wynik z portem, a zwróci to samo:https://fd677edg12
docker-machine default ip -> 192.168.99.100
więc umieściłem to w adresie:192.168.99.100:80
nadal otrzymuję ten sam wynik.Odpowiedzi:
Docker Toolbox nie ma tylu udogodnień, co Docker dla Windows, ale masz rację w korzystaniu z niego, ponieważ korzystasz z wersji Home.
W Toolbox nic nie będzie
localhost
i nie będzie192.168.99.100
domyślnie, ponieważ działa maszyna wirtualna Linux w VirtualBox.Więc jeśli uciekniesz
docker run -p 80:80 nginx
(zauważ, że musiałem opublikować port dla
192.168.99.100
aby nasłuchiwać na tym porcie)Wtedy
http://192.168.99.100
powinno działać.źródło
docker run -p 80:80 -d nginx
. Idę pod adres i przekierowuje mnie nahttps://dev/
, znowu mówi, że strona nie jest dostępna. Chciałem też sprawdzić, czy mam cokolwiek tohosts
plik (chociaż wiem, że nie jest to localhost). Skomentowałem tam wszystko.docker-machine
CLI. Możesz użyć,docker-machine --help
aby zobaczyć, co możesz zrobić, aby zarządzać maszyną wirtualną VirtualBox (lub utworzyć więcej).Początkowo miałem kilka problemów z dostępem do moich aplikacji na localhost: 8080 podczas korzystania z DockerToolBox i OracleVM VirtualBox.
W VirtualBox:
8080
i port gościa8080
; pamiętaj, aby pozostawić adresy IP hosta i IP gościa pusteUruchom polecenie:
źródło
C:\Windows\System32\drivers\etc\hosts
) - musiałem sprawdzić oba, zanim zadziałało ;-)Śledziłem samouczek Dockera dla systemu Windows w https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell i utknąłem w kroku 6 podczas testowania nginx w przeglądarce internetowej . Wygląda na to, że napotkałem podobny problem, ponieważ używam również Windows Home i nie mam Hyper-V. Moje obejście jest dość proste:
Przejdź do Oracle Virtual Machine, aby ustawić przekierowanie portów. Upewnij się, że ustawienie sieciowe to NAT i dodaj przekierowanie portów. Adres IP hosta: 127.0.0.1, adres IP gościa: 192.168.99.100, wszystkie porty ustawione na 80 w ten sposób
Spróbuj ponownie w przeglądarce i uruchom http: // localhost lub http://127.0.0.1 (można również dodać port 80). Powinien działać.
Chodzi o to, że adres IP nginx ma być dostępny w maszynie wirtualnej docker, więc potrzebujemy tego portu do ustawienia, aby uzyskać do niego dostęp bezpośrednio w przeglądarce hosta
źródło
HOST:CONTAINER
porty są różne, npdocker run --detach --publish 8081:80 --name webserver nginx
. Okazało się, że w tym przypadku musiałem przekierowaćHOST
tylko port, tj. W ustawieniach VirtualBoxHost IP=127.0.0.1
;Host Port=8081
;Guest IP=192.168.99.100
;Guest Port=8081
, nie80
tak , jak przypuszczałem wcześniej. Wygląda na to, że na moim komputerze z systemem Windows 7 z Docker Toolbox Docker przekazuje z portu kontenera80
do,192.168.99:8081
a ja przekazuję z192.168.99:8081
do,localhost:8081
ponieważ192.168.99:8081
nic nie wyświetla w przeglądarce internetowej.Możesz użyć
localhost
zamiast „192.168.99.100”, postępując zgodnie z instrukcjami:Krok # 01:
Zobaczysz domyślny adres IP
Krok # 02:
Krok 03:
VirtualBox Manager
)i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80
Krok # 04: Teraz możesz uruchomić swoją maszynę Docker, wykonując następujące czynności:
Następnie po prostu uruchom swój kontener Docker, a będziesz mieć do niego dostęp przez localhost.
Zajrzyj tutaj, aby poznać szczegóły.
źródło
Aby zmapować oczekiwane porty
localhost
zamiast bezpośredniego uderzania w adres IP maszyny docker-machine, możesz użyć interfejsu wiersza polecenia VirtualBox.Jeśli maszyna wirtualna docker-machine (nazywana tutaj
default
) jest uruchomiona, dodaj i usuń reguły w następujący sposób:Jeśli maszyna wirtualna nie działa lub chcesz ją zatrzymać przed zmianą:
Gdzie jest format reguły przekierowania portów
[<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>
.Zwróć uwagę, że w VirtualBox chcesz zmapować do hosta port mapy Docker, a nie na wewnętrzny port kontenera. Mapujesz hosta -> maszynę wirtualną, a następnie Docker mapuje maszynę wirtualną -> kontener.
Zobacz dokumentację VirtualBox .
źródło
To kolejny łatwy sposób na uniknięcie wpisywania adresu IP 192.168.99.100. Przejdź do
C:\Windows\System32\drivers\etc\hosts
i dodaj na końcu pliku:192.168.99.100 docker.awesome
lub dowolne imię, które Ci się podoba.Zapisz plik (musisz mieć uprawnienia administratora, więc pamiętaj, aby kliknąć plik prawym przyciskiem myszy i uruchomić go jako administrator, aby móc go zapisać podczas edycji).
Idź do wybranej nazwy domeny, w tym przypadku docker.awesome: 8080 i gotowe .
źródło
Po wielu próbach udało mi się zdobyć tę tablicę ogłoszeń.
Polecenie docker run, którego użyłem - docker run -p 4680: 8080 --name bb bulletinboard: 1.0 Tutaj 4680 to numer portu hosta lokalnego. 8080 to numer portu kontenera, czyli port, na którym kontener będzie nasłuchiwał. Ten numer portu jest wymieniony w poleceniu EXPOSE w pliku Dockerfile.
Następnie przejdź do przeglądarki internetowej i wpisz 192.168.99.100:4680
Tutaj 192.168.99.100 to adres IP maszyny docker (użyj polecenia -> docker-machine ip)
Mam nadzieję, że to pomoże wam wszystkim !!
źródło