我已经部署了这个Docker容器。
docker container run -d -p 8080:80 --name my-nginx2 --network my-net nginx:latest
当我执行curl localhost:8080
时,便可以访问它。但是,当我输入<public-address>:8080
时,它不起作用。我无法在网络浏览器上访问它。
我正在AWS上运行Red Hat 8 ec2实例。我的安全组如下所示。我不确定这是否与SG有关。
如果您有任何疑问,请告诉我。
谢谢。
答案 0 :(得分:3)
根据您共享的图像,您只允许端口80和22上的流量;
使用-p :8080:80
选项执行docker run命令时,基本上是在告诉您的实例在8080上侦听并将流量转发到端口80上的容器;
您有两种选择:
使用-p 80:80
选项启动容器,因此已经允许端口80,然后尝试在浏览器中通过<instance-external-ip-address>:80
来访问Web应用程序
第二个选项是添加防火墙规则以允许进入端口8080
,然后在浏览器的<instance-external-ip-address>:8080
上访问您的Web应用程序