如何在公共互联网上使用AWS主机中的docker webserver?

问题描述 投票:0回答:2

我在centos docker容器中有一个正在运行的apache webserver,它由AWS redhat实例托管。

我能够在AWS实例本地主机中卷曲我的容器Web服务器,但无法在我的笔记本电脑Web浏览器中公开访问。

网络服务器的详细信息:

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

你好,世界!!!

但无法使用我的笔记本电脑上的AWS主机公共IP在公共互联网上获取此信息。

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
apache amazon-web-services sockets docker tcp
2个回答
0
投票

您缺少实例安全组上的入站规则8080添加它并检查并进一步通知是否不起作用。


0
投票

华丽的工作!!!

但不确定它是如何工作的;-)会试图找出...

我刚刚停止了所有的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
© www.soinside.com 2019 - 2024. All rights reserved.