我是一个AWS新手。我有一个Web服务器容器和一个Selenium Hub容器。我的Web服务器需要访问另一个容器。我可以在使用docker-compose的开发环境中执行此操作(默认情况下,容器按名称彼此公开)。 我对如何使用AWS CloudFormation做到这一点感到困惑。 有"links" parameter in the ContainerDefinition,但我认为这使用了旧版docker link参数。所以我不愿意使用它。
有什么建议吗?
P.S:我不想向公众开放Selenium实例,因此不能使用公共主机名/ IP。
答案 0 :(得分:2)
尽管在纯Docker世界中,links
参数是 legacy ,但它仍然是在不依赖于专用服务发现的情况下连接AWS ECS世界中容器的最简单方法 / strong>(例如Consul或Route 53)。
使用links
的最大警告是不可能使用圆形链接。另外,容器必须在相同的任务/服务中运行。 links
参数无法在多个任务/服务中使用。
答案 1 :(得分:2)
好,我解决了我的问题。 我遵循了这个blog。
并将2个紧密耦合的容器放入相同的任务定义中,我只能够访问另一个容器,例如:localhost:port。
一切正常。
对于面临相同问题的其他人;如果您的容器没有紧密耦合,那么这一解决方案可能不是您的最佳选择,有一天您可能需要将它们部署在单独的计算机中。
但是对我来说很好。
答案 2 :(得分:0)
创建一个private DNS namespace并通过DnsConfig
在此名称空间中注册您的服务。这将使您的服务可以通过Name
提供的域名来访问。
我们使用Type: A, TTL: 10
作为DnsRecords
的配置。