Доступ к приложению Docker невозможен через открытые порты - PullRequest
0 голосов
/ 04 июня 2018

У меня внутри контейнера есть колба.Я запускаю этот контейнер с

docker run -p 5000:5000 pyprojects_web

Он отвечает

 * Serving Flask app "debateit.py"
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Если я запускаю

docker container ls

, я получаю

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
2221298e6e2c        pyprojects_web      "flask run"         12 minutes ago      Up 12 minutes       0.0.0.0:5000->5000/tcp   elated_joliot

Если яaccess http://127.0.0.1:5000 Я получаю:

This site can’t be reached
The web page at http://127.0.0.1:5000/ might be temporarily down or it may have moved permanently to a new web address.
ERR_SOCKET_NOT_CONNECTED

http://localhost:5000 дает аналогичный ответ.

Обычный совет - слушать все соединения внутри вашего контейнера с 0.0.0.0 - но я уже делаю это.Вот мое приложение:

from app import app


if __name__ == "__main__":
    app.run(host="0.0.0.0")

Если я закручиваюсь изнутри своего контейнера, он отлично работает:

docker exec -it 2221298e6e2c curl http://localhost:5000

с длинным ответом HTML, и журналы моего сервера получают:

127.0.0.1 - - [04/Jun/2018 01:00:16] "GET / HTTP/1.1" 200 -

Учитывая эти результаты и учитывая, что у меня есть хост "0.0.0.0", что еще можно попробовать?

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2018

Итак, исходя из комментариев, ясно, что вы на самом деле не работаете на 0.0.0.0, и это, вероятно, (обратите внимание на command для контейнера), потому что вы используете более новую версию фляги, которую, я думаю, вам нужно передатьнекоторые аргументы для flask run.

Попробуйте flask run --host=0.0.0.0 в качестве команды в вашем контейнере, и я думаю, что это, вероятно, сработает, как вы ожидаете:)

Больше информации на Настольная документация .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...