我尝试在AWS Fargate上设置一个小示例,并尝试使用一个应用程序容器和一个数据库容器。
任务定义启动这两个容器,但我的应用程序容器失败,返回getaddrinfo ENOTFOUND db db:3306。因此,我的应用容器找不到数据库容器。
由于Fargate不允许Docker容器的“链接”,我想知道它们如何相互通信。数据库容器的名称为db,端口为3306,我的应用程序容器被配置为使用此名称。
不幸的是,定义容器的链接对于Fargate是不可用的,而只能用于“老派”ECS/EC2。
在本地docker-compose设置中,它是这样工作的。
发布于 2017-12-20 04:59:28
Fargate任务中的容器共享一个网络名称空间,因此根本不需要使用链接。您可以简单地通过本地主机进行通信。
例如,如果容器A在端口8000上运行web服务器,则容器B可以通过curl http://localhost:8000/到达该端口
发布于 2021-09-26 10:06:38
现在,您可以使用AWS Cloud Map服务发现与Amazon ECS的集成。通过此服务,您将能够通过https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/networking-connecting-services.html名称调用其他容器
发布于 2017-12-20 01:55:23
您可能可以对其进行设置,以便服务可以通过公有IP地址相互通信,然后使用VPC保护端口,只有服务可以在该VPC上与自身通信。
https://stackoverflow.com/questions/47637588
复制相似问题