Развертывание приложения Flask в докере.невозможно подключиться к сайту - PullRequest
0 голосов
/ 15 апреля 2019

Я запустил файл Docker, используя python и flask. но я не могу подключить флеш-сервер в localhost. Я уже подтвердил, что код хорошо работает с PyCham в Mac.

после проверки журнала, я думаю, что колба-сервер хорошо работает в контейнере. но я не могу подключиться к localalshost

Код Python

# app.py
from flask import Flask

app = Flask('app')


@app.route('/')
def index():
    return "I'm from docker"


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)
else:
    print('imported')


Dockerfile.

FROM ubuntu:latest
MAINTAINER ian <ian@mysterico.com>

RUN apt-get update
RUN apt-get install python3 -y
RUN echo "python3 install SUCCESS #####"

RUN apt-get install python3-pip -y
RUN echo "pip3 install SUCCESS ######"

EXPOSE 5000

COPY requirements.txt /
COPY app.py /
WORKDIR /


RUN pip3 install -r requirements.txt

CMD python3 app.py

Некоторые журналы Docker

$ docker ps КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАНА СТАТУС ИМЕНА ПОРТ 0691161cd0b5 колба: последняя "/ bin / sh -c 'python3…" 2 минуты назад вверх 2 минуты 0.0.0.0:5000->5000/tcp колба

$ docker logs 0691161cd0b5 * Запуск http://0.0.0.0:5000/ (нажмите CTRL + C, чтобы выйти) * Перезапуск со статом * Отладчик активен! * PIN-код отладчика: 280-257-458

$ docker exec -it 71305c45d05b bash root @ 71305c45d05b: / # curl 127.0.0.1:5000 -v

Перестроен URL-адрес на: 127.0.0.1:5000/ Попытка 127.0.0.1 ... TCP_NODELAY установлено Подключен к 127.0.0.1 (127.0.0.1) порту 5000 (# 0) GET / HTTP / 1.1 Хост: 127.0.0.1:5000 Пользователь-агент: curl / 7.58.0 Принимаем: /

HTTP 1.0, предположим, что закрыть после тела HTTP / 1.0 200 OK Content-Type: text / html; кодировка = UTF-8 Длина контента: 15 Сервер: Werkzeug / 0.15.2 Python / 3.6.7 Дата: пн, 15 апреля 2019 15:31:36 GMT

Закрытие соединения 0 Я из докера

Я ожидаю, что при вводе localhost: 5000 вернется сообщение "Я из докера", но браузер Chrome вернул "Невозможно подключиться"

Что я сделал неправильно?

1 Ответ

0 голосов
/ 15 апреля 2019

Я предполагаю, что вы используете Docker на своем локальном хосте (а не на ВМ)?Вы пытались явно использовать порт 5000 на колбе?

app.run(host="0.0.0.0", port=int("5000"), debug=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...