【发布时间】:2016-04-03 16:54:19
【问题描述】:
我正在尝试在 AWS ECS 中设置具有关联数据库的基本 Web 应用程序。在本地,我在不同的容器中进行了这些设置,在 ECS 上,我希望有单独的任务定义,以便我可以分别扩展这两个。
- 我在 ECS 中成功注册了我的第一个任务定义为
david_mongodb。它有一个名为david_mongodb的容器。 - 然后我尝试将我的第二个任务定义注册为
david_web,它有一个名为david_web的容器,它通过david_mongodb:db链接数据库。 -
当我点击“创建”时,它返回一个错误:
Unable to create Task Definition Linked container 'david_mongodb:db' doesn't exist.
似乎任务定义在其他任务定义中看不到容器名称?我正在考虑将 david_web 和 david_mongodb 容器放在同一个任务定义中会起作用,但我不想这样做:它会阻止我单独扩展 Web 应用程序或数据库。 This overview 似乎证实了我的架构是值得推荐的……
那么如何链接不同任务定义中的容器呢?还是有其他巧妙的处理方式?
【问题讨论】:
-
我不相信网络模式能解决这个问题。您仍然需要发现任务所在的节点(和 IP)。
-
问题和这个答案之间没有联系,控制网络模式与链接在不同容器中运行的任务没有直接关系。
-
自2017年11月起,我们也可以在其他任务中使用私有IP地址连接容器,只要将任务定义为
awsvpc网络模式即可。在此宣布:aws.amazon.com/blogs/compute/…。
标签: amazon-web-services docker amazon-ecs