我没有找到解决方案,因为单独的任务定义中的两个容器可以相互通信。因此,我按照answer链接两个容器在相同的任务定义中运行良好。谢谢你的答案。
但是,当我阅读ECS文档时,我发现following paragraph让我感到困惑:
在单个容器实例上并置的容器可能能够相互通信,而无需链接或主机端口映射。使用安全组和VPC设置在容器实例上实现网络隔离。
但我无法找到如何实现这一目标的进一步文档。我知道docker社区尝试使用--network
并弃用了--link
。我不确定AWS是否进行了一些更改以便以某种方式启用它们。
有人可以帮助我了解如何实现这一目标吗?由于容器名称和IP始终由ECS动态分配,如果在没有链接和端口映射的不同任务定义中,如何从一个容器与另一个容器进行通信?
答案 0 :(得分:0)
根据您的用例,您可以利用ECS的服务发现功能,服务发现将为端点(URL)提供私有服务,以在不同服务之间进行通信。
在服务发现中,每次启动或停止新任务时,ECS都会将动态IP和容器的端口更新为DNS记录。
参考文档: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html