Docker доступ к изображению на aws ec2 - PullRequest
0 голосов
/ 05 мая 2020

Я создал Docker изображение приложения Flask, выполняющего следующий код на сервере EC2:

docker build -t app .
docker run -80:80 app .

Результат работает, поскольку сервер возвращает:

Serving Flask app "app" (lazy loading)
Environment: production
Debug mode: off
Running on http://127.0.0.1:5000/

Как я могу получить доступ к http://127.0.0.1:5000/ направлению на сервере EC2 или изменить направление, чтобы увидеть его?

Также изображение Docker должно работать на порту 80, но я не вижу, какую роль этот порт играет в процессе.

Я следую " Simple способ развертывания моделей машинного обучения в облаке".

Ответы [ 3 ]

0 голосов
/ 06 мая 2020

Прежде всего, сервер python должен работать на 0.0.0.0. В противном случае сервер flask не будет принимать никаких подключений извне.

И если вы развернете его на инстансе EC2, вам, вероятно, понадобится эластичная c балансировка нагрузки для предоставления доступа или Publi c IP. С помощью ELB вы можете показывать приложение flask с 80 по порт 5000.

И всегда не забывайте устанавливать -p 5000: 5000. В противном случае вы никогда не открываете этот порт.

Предупреждение: если вы используете publi c IP, правильно настройте группы безопасности с портами и IP-адресами с CIDR. В противном случае ваша машина будет взломана.

0 голосов
/ 06 мая 2020

Я понял, что мне нужно добавить в свое приложение flask порт и хост. Замените это:

if __name__ == '__main__':
    app.run()

на это:

if __name__ == '__main__':
    app.run(host= '0.0.0.0',port=80)
0 голосов
/ 05 мая 2020

Обновите свой запуск docker или добавьте другое сопоставление портов, например

docker run -p 5000:5000 app .

ИЛИ

docker run -p 80:80 -p 5000:5000 app .

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