docker - 如何让容器在没有链接和端口映射的情况下在ECS中相互通信?

标签 docker containers devops amazon-ecs

我没有找到解决单独任务定义中的两个容器可以相互通信的解决方案。因此,我关注了answer在相同的任务定义中链接两个容器,效果很好。首先感谢您的回答。

但是,当我阅读 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 动态分配,如果在没有链接和端口映射的不同任务定义中,我如何从一个容器到另一个容器通信?

最佳答案

根据您的用例,您可以利用 ECS 的服务发现功能,服务发现将提供一个端点(url)以在不同服务之间私下通信。

在服务发现中,ECS 负责将容器的动态 IP 和端口更新到 DNS 记录,每次启动或停止新任务时。

引用文档:
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html

关于docker - 如何让容器在没有链接和端口映射的情况下在ECS中相互通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557659/

相关文章:

c++ - 类成员中 T[n] 与 T* 样式数组的含义

c++ - 我们在 vector 中没有的多集中有什么更好的特征?

azure - 无法在 Azure DevOps 中构建角度项目

docker - standard_init_linux.go :190: exec user process caused "no such file or directory" Docker with go basic web app

docker - 需要 Keycloak Docker HTTPS

python - 动态更新 gtk.VBox

reactjs - 使用服务名称在 docker-compose React 容器中调用 API 到 django 容器

ServiceBus 的 Azure ARM 模板 : cannot reference itself

docker - docker-jwilder/nginx-proxy,容器创建问题

docker - vscode 中的断点 (Win 10) "unverified"并且在 Linux Docker 容器 (Hyper-V) 中远程调试 Go 应用程序时未命中