没有link和端口映射,如何让容器在ECS中相互通信?
How to make containers communicate with each other in ECS without link and port mapping?
我没有找到单独任务定义中的两个容器可以相互通信的解决方案。因此,我遵循 到 link 相同任务定义中的两个容器,其中工作 well.Thanks 首先作为答案。
但是,当我阅读 ECS 文档时,我发现 following paragraph 让我感到困惑:
Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.
但我无法找到更多文档来了解如何实现这一目标。我知道 docker 社区尝试使用 --network
并弃用了 --link
。我不确定 AWS 是否进行了一些更改以以某种方式启用这些功能。
有人可以帮助我了解如何实现吗?因为容器名称和 IP 始终由 ECS 动态分配,如果在不同的任务定义中没有 link 和端口映射,我如何从一个容器通信到另一个容器?
根据您的用例,您可以利用 ECS 的服务发现功能,服务发现将提供一个端点(url)以在不同服务之间进行私密通信。
在服务发现中,每次启动或停止新任务时,ECS 负责将容器的动态 IP 和端口更新到 DNS 记录。
参考文档:
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html
我没有找到单独任务定义中的两个容器可以相互通信的解决方案。因此,我遵循
但是,当我阅读 ECS 文档时,我发现 following paragraph 让我感到困惑:
Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.
但我无法找到更多文档来了解如何实现这一目标。我知道 docker 社区尝试使用 --network
并弃用了 --link
。我不确定 AWS 是否进行了一些更改以以某种方式启用这些功能。
有人可以帮助我了解如何实现吗?因为容器名称和 IP 始终由 ECS 动态分配,如果在不同的任务定义中没有 link 和端口映射,我如何从一个容器通信到另一个容器?
根据您的用例,您可以利用 ECS 的服务发现功能,服务发现将提供一个端点(url)以在不同服务之间进行私密通信。
在服务发现中,每次启动或停止新任务时,ECS 负责将容器的动态 IP 和端口更新到 DNS 记录。
参考文档: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html