Поэтому я использую Docker Toolbox, потому что на моем компьютере нет Hyper-V, поскольку это не Windows 10 pro. Кажется, все работает нормально, но когда я пытаюсь открыть свой браузер, 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. Я все равно получаю тот же результат, за исключением того, что адрес становится идентификатором контейнера:https://fd677edg12
Я бег этой команды на ЦМД , чтобы найти мой ipv4: cmd /k ipconfig /all
. Поместите результат в порт, и он вернет то же самое:https://fd677edg12
источник
docker-machine default ip -> 192.168.99.100
Я поставил это в адрес:192.168.99.100:80
я все равно получаю тот же результат.Ответы:
Docker Toolbox не так удобен, как Docker для Windows, но вы правильно используете его, поскольку используете домашнюю версию.
В Toolbox ничего не будет
localhost
, и будет192.168.99.100
по умолчанию, поскольку в VirtualBox работает виртуальная машина Linux.Итак, если вы бежите
docker run -p 80:80 nginx
(обратите внимание, мне пришлось опубликовать порт для
192.168.99.100
прослушивания этого порта)Тогда собираешься
http://192.168.99.100
работать.источник
docker run -p 80:80 -d nginx
. Я иду по адресу, а он меня перенаправляетhttps://dev/
, опять же говорит, что сайт недоступен. Я также хотел проверить, есть ли у меня что-нибудь, этоhosts
файл (хотя я знаю, что это не localhost). Я там все прокомментировал.docker-machine
cli. Вы можете использовать,docker-machine --help
чтобы увидеть, что вы можете сделать для управления виртуальной машиной VirtualBox (или создать больше).Изначально у меня было несколько проблем с доступом к моим приложениям на localhost: 8080 при использовании DockerToolBox и OracleVM VirtualBox.
В VirtualBox:
8080
и гостевой порт8080
; не забудьте оставить Host IP и Guest IP пустымиВыполните команду:
источник
C:\Windows\System32\drivers\etc\hosts
) - мне пришлось проверить оба, прежде чем это сработало для меня ;-)Я следил за учебником по докеру для Windows в https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell и застрял на шаге № 6 при тестировании nginx в веб-браузере . Кажется, я столкнулся с аналогичной проблемой, так как я также использую Windows Home и не имею Hyper-V. Мой способ обхода довольно прост:
Перейдите в виртуальную машину Oracle, чтобы настроить переадресацию портов. Убедитесь, что настройка сети - NAT, и добавьте переадресацию портов. IP-адрес хоста: 127.0.0.1, гостевой IP-адрес: 192.168.99.100, порт настроен на 80, как это
Повторите попытку в браузере и запустите http: // localhost или http://127.0.0.1 (также можно добавить порт 80). Он должен работать.
Дело в том, что IP-адрес nginx должен быть доступен в виртуальной машине докера, поэтому нам нужна настройка переадресации порта, чтобы получить к нему доступ непосредственно в браузере хост-машины.
источник
HOST:CONTAINER
порты разные, напримерdocker run --detach --publish 8081:80 --name webserver nginx
. Обнаружил, что в этом случае мне нужно было перенаправитьHOST
только порт, т.е. в настройках VirtualBoxHost IP=127.0.0.1
;Host Port=8081
;Guest IP=192.168.99.100
;Guest Port=8081
не так,80
как я предполагал раньше. Похоже, что на моем компьютере с Windows 7 с Docker Toolbox Docker пересылает из порта контейнера80
в,192.168.99:8081
а я перенаправляю из192.168.99:8081
в,localhost:8081
потому что192.168.99:8081
ничего не показывает в веб-браузере.Вы можете использовать
localhost
вместо 192.168.99.100, следуя инструкциям:Шаг № 01:
Вы увидите IP по умолчанию
Шаг # 02:
Шаг # 03:
VirtualBox Manager
)i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80
Шаг № 04: Теперь вы готовы запустить Docker Machine, выполнив следующие действия:
Затем просто запустите свой контейнер Docker, и вы сможете получить к нему доступ через localhost.
Подробности читайте здесь .
источник
Чтобы сопоставить ожидаемые порты
localhost
вместо прямого обращения к IP-адресу докер-машины, вы можете использовать VirtualBox CLI.Если виртуальная машина докер-машины (здесь называется
default
) запущена, добавьте и удалите такие правила:Если виртуальная машина не запущена или вы хотите остановить ее перед изменением:
Где формат правила переадресации портов
[<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>
.Обратите внимание, что в VirtualBox вы хотите сопоставить порт хоста карты Docker, а не внутренний порт контейнера. Вы сопоставляете хост -> виртуальную машину, затем Docker отображает виртуальную машину -> контейнер.
См. Документацию VirtualBox .
источник
Это еще один простой способ избежать ввода ip 192.168.99.100. Зайдите
C:\Windows\System32\drivers\etc\hosts
и добавьте в конец файла:192.168.99.100 docker.awesome
или любое имя по своему вкусу.Сохраните файл (у вас должны быть права администратора, поэтому не забудьте щелкнуть файл правой кнопкой мыши и запустить его от имени администратора, чтобы иметь возможность сохранить его при редактировании).
Перейдите к выбранному вами доменному имени, в данном случае docker.awesome: 8080, и вот оно.
источник
После множества испытаний я смог получить эту доску объявлений.
Я использовал команду docker run - docker run -p 4680: 8080 --name bb bulletinboard: 1.0 Здесь 4680 - номер порта localhost. 8080 - номер порта контейнера, порт, на котором контейнер будет прослушивать. Этот номер порта упоминается в команде EXPOSE в файле Dockerfile.
Затем перейдите в веб-браузер и введите 192.168.99.100:4680
Здесь 192.168.99.100 - это IP-адрес докер-машины (используйте команду -> docker-machine ip)
Надеюсь, это поможет вам всем !!
источник