我正在尝试使用aws-cli(实例类型为EC2)在aws ecs上运行docker容器
我有一个包含2个服务的docker-compose文件。
version:'3'
services:
service-one:
image: dockerhub/image1
ports:
- "4500:9090"
service-two:
image: dockerhub/image2
ports:
- "80:3030"
当我使用ecs-cli在aws ecs上运行此命令时:
ecs-cli compose service up --config-name config --ecs-profile etc
我的容器成功启动,但是只有一个容器(服务二)出现在端口80上,即使在docker内部成功运行了端口4500,我也看不到我的服务一(码头集装箱ps)。我还尝试在端口80上运行service-one,然后显示出来。
总结:除非在端口80上运行,否则我无法从网络上找到任何容器。
答案 0 :(得分:0)
检查与您的EC2实例相关联的安全组,并在inbound rules
上添加类型http
的新规则,作为容器端口(4500
)的端口范围,作为源,仅出于测试目的(您正在向世界展示您的服务),请选择来源Anywhere
。
答案 1 :(得分:0)
如@Madeo的回答中所述,您需要在ec2实例的安全组中打开端口4500。您可以在端口4500上添加自定义tcp规则,并将其打开到0.0.0.0,:: / 0。但这仅应用于测试目的。当您确定它可以正常工作时,请更新安全组以仅接受您想要的流量(例如负载平衡器)。