Не удается подключиться к порту docker с хост-машины

#docker #dockerfile

#docker #dockerfile

Вопрос:

Я не могу получить доступ к порту 8080 docker с хост-компьютера. У нас есть контейнер docker с React приложением. Мы можем получить целевую страницу изнутри контейнера, но не с хоста.

Из контейнера:

 root@d4947f7b1710:/# wget localhost:8080
--2019-04-01 19:38:00--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1, ::1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 492 [text/html]
Saving to: 'index.html'

index.html                                    100%[===============================================================================================>]     492  --.-KB/s    in 0s

2019-04-01 19:38:00 (49.5 MB/s) - 'index.html' saved [492/492]
  

С хоста:

 wget localhost:8000
--2019-04-01 19:38:59--  http://localhost:8000/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8000... connected.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.Retrying.
  

Также пробовал wget 0.0.0.0:8000 , но получил тот же результат.
Порты, похоже, сопоставлены правильно:

 docker port d4947f7b1710
8080/tcp -> 0.0.0.0:8000
  

Команда, используемая для запуска контейнера:

запуск docker -d -p 8000:8080 <docker repo> : <version>

Комментарии:

1. ну, он говорит … подключен, поэтому я предполагаю, что это какая-то другая проблема

2. вы запускали другой контейнер docker ранее или это ваш первый раз?

3. У меня есть небольшой опыт работы с docker. Не совсем новая версия.

4. хорошо, тогда маловероятно, что ваш хост docker работает на другом IP-адресе или нуждается в дополнительных сопоставлениях портов oO…

Ответ №1:

Возможно, вы инвертировали порты из того, что я вижу в последней части вашего сообщения

Комментарии:

1. facepalm Я тоже так подумал на мгновение, но просто подумал, что это другой способ его печати -.-

2. Вот команда, используемая для запуска контейнера: docker run -d -p 8000:8080 <репозиторий docker>:<версия>

3. Я тоже думал об этом, пробовал оба порта (8000,8080), но не работает.

4. Он показывает перевернутый, чем то, что вы видите в обычной docker ps команде, вот результаты для обеих команд: КОМАНДА docker ps CONTAINER ID IMAGE СОЗДАЛА ИМЕНА ПОРТОВ СТАТУСА 1eff46acc65f <Контейнер> «/bin / sh -c ‘npm sta …» Примерно минуту назад около минуты 80 / tcp, 5000 / tcp, 0.0.0.0:8000->8080/tcp modest_meninsky порт докера 1eff46acc65f 8080/tcp -> 0.0.0.0:8000