AWS ECS:已部署多个容器,但在端口80上只能发现一个容器

时间:2019-12-12 19:44:26

标签: amazon-web-services docker amazon-ec2 docker-compose amazon-ecs

我正在尝试使用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上运行,否则我无法从网络上找到任何容器。

2 个答案:

答案 0 :(得分:0)

检查与您的EC2实例相关联的安全组,并在inbound rules上添加类型http的新规则,作为容器端口(4500)的端口范围,作为源,仅出于测试目的(您正在向世界展示您的服务),请选择来源Anywhere

答案 1 :(得分:0)

如@Madeo的回答中所述,您需要在ec2实例的安全组中打开端口4500。您可以在端口4500上添加自定义tcp规则,并将其打开到0.0.0.0,:: / 0。但这仅应用于测试目的。当您确定它可以正常工作时,请更新安全组以仅接受您想要的流量(例如负载平衡器)。