Не могу получить доступ к порту 8080 на AWS EC2 - PullRequest
0 голосов
/ 04 ноября 2018

Я только что запустил новый экземпляр AWS EC2. В группу безопасности экземпляра я добавил новое правило, чтобы открыть порт 8080 и порт 80.

Я создал образ докера и контейнер, который запускает сервер Apache, согласно инструкции aws .

Когда я запускаю docker run -p 80:80 hello-world (где hello-world - это изображение контейнера apache), все работает нормально, и я могу получить доступ к серверу из публичной сети (с помощью веб-браузера или команды curl).

Однако, когда я запускаю docker run -p 8080:80 hello-world и пытаюсь отправить GET-запрос (веб-браузер или curl), я получаю тайм-аут соединения.

Если я войду на хост, на котором запущен контейнер докера, команда curl будет работать нормально. Это говорит мне, что порт 8080 на самом деле не открыт для публичной сети, и что-то блокирует его, что это может быть?

Ответы [ 2 ]

0 голосов
/ 28 июля 2019

Настройка групп безопасности может решить проблему.

SecurityGroups> Inbound> Редактировать входящие правила> Добавить новые правила> Все TCP

enter image description here

0 голосов
/ 04 ноября 2018

Я пытался воспроизвести эту вещь, и я не смог этого сделать (это сработало для меня), поэтому вещи, которые вы должны проверить:

1) Убедитесь, что группа безопасности действительно открыла порты 80 и 8080 для вашего ip (или 0.0.0.0/0, если это всего лишь тест для подтверждения того, что это не проблема брандмауэра).

2) проверьте, работает ли контейнер:

docker ps -a

вы должны увидеть: 0.0.0.0:8080->80/tcp под портами.

3) проверьте, что при отправке запроса GET вы указываете порт 8080 в запросе, поэтому ваш браузер должен выглядеть примерно так:

http://your.ip:8080

или скручивание:

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