Моя установка заключается в следующем:Docker внутри Linux VM не может подключиться к веб-приложению
Host: Win10
Guest: Ubuntu 15.10 (clean install, only docker and nodejs are added)
Base image: https://hub.docker.com/r/microsoft/aspnet/ 1.0.0-beta8-coreclr
Внутри гостя я установил Докер и созданный образ (добавлен образец веб-приложение с помощью YEOMAN к изображению выше). Когда я запускаю изображение внутри контейнера, я могу ping IP-адрес контейнера успешно использовать IP-адрес контейнера из Linux (например, 172.17.0.2).
$sudo docker run -d -p 80:5000 --name web myapp
$sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' "web"
172.17.0.2
$ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.060 ms
1 packets transmitted, 1 received, 0% packet loss, time 999ms
$curl 172.17.0.2:80
curl: (7) Failed to connect to 172.17.0.2 port 80: Connection refused
Я также могу подключиться к контейнеру и выполнять команды, как пинг, однако из Linux машины (гостя в VirtualBox, хост для докер) я не могу получить доступ к веб-приложение, размещенную внутри контейнера, как показано выше. Я попробовал несколько подходов, таких как сопоставление с IP-адресами хоста и т. Д., Но ни один из них не работал. У кого-нибудь есть идеи, с чего начать? Проблема связана с тем, что докер установлен внутри машины VirtualBox?
Заранее спасибо.
Edit: Вот бревна из контейнера:
Could not open /etc/lsb_release. OS version will default to the empty string.
Hosting environment: Production
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
Является ли ваше веб-приложение прослушиванием порта 5000? – Gerrat
Да, порт 5000 (это значение по умолчанию для сервера, на котором запущено ядро dotNet). Я даже зарегистрировался в контейнере и попытался запустить сервер снова на этом порту, но появляется сообщение о том, что порт уже подключен к слушателю (предположим, что сервер работает как ожидалось). –
Возможно, контейнеру нужно некоторое время для запуска. Не могли бы вы запустить 'docker logs web', чтобы узнать, полностью ли запущено приложение внутри контейнера? – Gonfva