2

I have two containers added to a task definition

  1. Node Container:

    name :nodeAPI
    port :exposed 5001
    mongoconnection string in the env variable : mongodb://mongo  [name of mongo container]
    
  2. Mongo container:

    name :mongo
    port :exposed 27017
    

The node container is not able to connect to Mongo when I run this task. I am using Fargate and network as awsvpc.

  1. How do I fix this?
  2. How do I make it work running them from separate task definitions?
4

3 回答 3

1

由于 Fargate 中的每个任务都有自己的 ENI,因此在同一任务定义中的容器之间进行通信的正确方法是调用本地环回127.0.0.1localhost.

例如:

第一个容器将能够使用127.0.0.1:<port of second container>地址与第二个容器通信,第二个容器可以使用地址与第一个容器通信127.0.0.1:<port of first container>

这在 AWS 博客中得到了很好的解释:https ://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/

于 2019-11-13T19:03:57.210 回答
0

运行任务时有一个安全组配置检查它们是否打开

fargate 安全 groep

fargate 就像一个 ec2 唯一的事情是你可以使用一个 docker 镜像所以你必须做正常的 ec2 配置

于 2018-08-29T09:37:40.147 回答
0

如果两个容器都在同一个“任务定义”中定义,那么它们就可以使用“localhost”进行通信。

在您的示例中,您的 NodeJs 应用程序将与 mongolocalhost:27017

于 2019-02-26T04:52:50.240 回答