Подтвердить что ты не робот

Как получить доступ к tomcat в контейнере докера из браузера?

Я запускаю tomcat в контейнере докера из официального репо.

docker pull tomcat

И в соответствии с рекомендациями, изложенными на домашней странице, я запустил экземпляр и запущен сервер Tomcat

docker run -it --rm -p 8888:8080 tomcat:8.0

И сервер Tomcat доступен на порту 8888. Я могу получить ответ в boot2docker, когда я выполняю следующую команду

curl localhost:8888

Но я хотел бы получить доступ к странице из моего веб-браузера, установленного на моем ПК (который находится вне виртуального окна, который установлен в моей Windows). Могу я? Если да, то как?

4b9b3361

Ответ 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.