Как сделать мой докер веб-сервер на хосте AWS общедоступным? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть работающий веб-сервер apache в контейнере док-станции centos, который размещен на экземпляре AWS redhat.

Я могу свернуть свой веб-сервер-контейнер на локальном хосте экземпляра AWS, но не могу получить публичный доступ в веб-браузере моего ноутбука,

сведения о веб-сервере:

docker run -d --name httpd -p 8080:8080 -v /home/ec2-user/apache/web1/www:/var/www:Z docker.io/centos/httpd-24-centos7

Вывод docker ps:

CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                              NAMES
abd790b28b51        docker.io/centos/httpd-24-centos7   "container-entrypo..."   2 hours ago         Up 20 minutes       0.0.0.0:8080->8080/tcp, 8443/tcp   httpd

В экземпляре AWS:

curl http://localhost:8080

Hello World !!!

Но не удалось получить это в общедоступном интернете с использованием публичного IP-адреса хоста AWS с моего ноутбука.

Вывод netstat -tulpn:

(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::8080                 :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      -                   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -                   
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -                   
udp6       0      0 ::1:323                 :::*                                -

Мои правила входящей безопасности AWS:

HTTP    TCP 80  157.51.138.196/32
All traffic All All 157.51.138.196/32
SSH TCP 22  157.51.138.196/32
DNS (TCP)   TCP 53  157.51.138.196/32
HTTPS   TCP 443 157.51.138.196/32

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Ура, это сработало !!!

Но не уверен, как это на самом деле сработало ;-) Постараюсь выяснить, что ...

Я просто остановил все контейнеры apache и удалил их полностью,Затем выполнили приведенную ниже команду, и все заработало идеально.

При использовании приведенного ниже убедитесь, что вы правильно сопоставили том (-v) с файлом index.html на своем хосте.

docker run -d --name httpd -p 9080:8080 -v /home/ec2-user/apache/web1/www/html:/var/www/html:Z docker.io/centos/httpd-24-centos7
0 голосов
/ 20 февраля 2019

вам не хватает входящего правила 8080 для группы безопасности экземпляра, добавьте его, проверьте и сообщите, если не работает.

...