Как получить доступ к док-контейнеру tomcat, работающему на рабочей станции VMWare?

Я знаю, что этот вопрос звучит как повторяющийся вопрос, но я не смог найти другого, соответствующего моему требованию. Поэтому я только начал использовать докер для разработки приложения tomcat.

После установки докера в Ubuntu 16 внутри VMWare Workstation и загрузки образа tomcat-docker я хочу запустить контейнер tomcat с помощью команды START вместо RUN.

Я использую команду START, потому что не хочу застревать в STDOUT и могу продолжать использовать командную строку Linux. Итак, я запускаю контейнер с помощью команды ниже

 $ docker start name_of_container

Затем я выдаю команду проверки

 $ docker inspect name_of_container

Мне удалось увидеть, что мой экземпляр tomcat использует ip: 172.17.0.2. Так что я сделал скручивание, как:

 $ curl 172.17.0.2:8080 | head

И я отлично распечатал свои теги HEAD, что означает, что я успешно создал экземпляр своего кота.

Мой вопрос: как я могу получить доступ к своему коту из моего браузера в Windows? как я могу создать переадресацию портов в VMWare, чтобы я мог получить доступ к ip 172.17.0.2??

Спасибо


person Bromo Programmer    schedule 01.12.2016    source источник


Ответы (2)


Если для создания контейнера используется docker create, укажите порты для публикации хост с --publish:

docker create --publish 8080:8080 --name my-tomcat tomcat

Затем вы можете начать с:

docker start my-tomcat

Порт 8080 на вашем хосте теперь будет отправлять трафик на порт 8080 вашего контейнера.

Вы должны иметь доступ к http://ip-of-vm:8080 в своем браузере.

person six8    schedule 01.12.2016

Во-первых, вы можете использовать команду RUN без потери терминала с опцией -d. Он запускает контейнер в отдельном режиме, а кот находится в фоновом режиме.

Во-вторых, когда вы запускаете свой контейнер, вам нужно будет сопоставить его открытый порт с другим портом на вашей виртуальной машине с параметром -p.

Таким образом, команда запуска должна выглядеть так:

docker run -d -p 8000:8080 tomcat

Где 8000 — это открытый порт на вашей виртуальной машине, а 8080 — это порт, который tomcat прослушивает в вашем контейнере. Трафик, поступающий на вашу виртуальную машину через порт 8000, будет перенаправлен на порт 8080, который предоставляет контейнер tomcat.

Наконец, вам нужно будет найти IP-адрес вашей виртуальной машины, а не IP-адрес вашего контейнера.

Для этого должно быть достаточно ifconfig на виртуальной машине. Вы должны иметь возможность пропинговать его с вашего хост-компьютера (чтобы позже он был доступен из браузера). Поэтому, если IP-адрес вашей виртуальной машины окажется 192.168.1.50 (например), вам нужно будет ввести это в браузере:

192.168.1.50:8000

Здесь 8000 — это просто пример. Вы также можете использовать 8080, чтобы избежать путаницы в команде RUN:

docker run -d -p 8080:8080 tomcat
person HakRo    schedule 01.12.2016