Как получить доступ к tomcat в контейнере докера из браузера?
Я запускаю tomcat в контейнере докера из официального репо.
docker pull tomcat
И в соответствии с рекомендациями, изложенными на домашней странице, я запустил экземпляр и запущен сервер Tomcat
docker run -it --rm -p 8888:8080 tomcat:8.0
И сервер Tomcat доступен на порту 8888. Я могу получить ответ в boot2docker, когда я выполняю следующую команду
curl localhost:8888
Но я хотел бы получить доступ к странице из моего веб-браузера, установленного на моем ПК (который находится вне виртуального окна, который установлен в моей Windows). Могу я? Если да, то как?
Ответы
Ответ 1
В настройках VirtualBox может отсутствовать правило переадресации портов.
boot2docker vm > settings > Network > NAT adapter > Port forwarding
Обратите внимание на последнюю запись:
![enter image description here]()
Таким образом, вы сконфигурировали целую цепочку: hostPort:virtualBoxPort
, затем virtualBoxPort:containerPort
, как показано на следующей диаграмме:
![enter image description here]()
Ответ 2
Кажется, есть лучший ответ, поскольку Docker-Tools был представлен несколько месяцев назад. Если вы не используете Docker Tools, посмотрите https://docs.docker.com/machine
Если вы используете инструменты Docker,
- найдите имя машины-докера с помощью
$ docker-machine ls
- найдите IP-адрес докере с помощью
$ docker-machine ip <machine-name>
- используйте IP-адрес для подключения, например.
$ curl 192.168.99.100
Ответ 3
запустите boot2docker ip
, чтобы получить IP-адрес вашего докер-моста. Затем вы можете запустить curl BRIDGE_IP:8888
IP-адрес будет похож на 192.168.59.103. С boot2docker сетевой стек VMs не является вашим локальным хостом, а работает на виртуальном интерфейсе.
Ответ 4
Используя docker-machine ls
, чтобы получить IP экземпляра виртуальной коробки, запускающей контейнер. Затем используйте это с соответствующим портом, который вы выставили, в моем случае 8080, поэтому он был http://192.168.99.100:8080
.
Ответ 5
option -p
имеет аргумент hostPort:containerPort
, поэтому в вашем случае порт 8080 (внутри вашего изображения докеры) отображается на порт 8888 на хосте (окно окна). Это означает, что вы должны найти tomcat в своем окне Windows, добавив :8888
к вашему URL-адресу, как и с curl.