Amazon web services AWS Beanstalk中docker容器之间的交叉通信

Amazon web services AWS Beanstalk中docker容器之间的交叉通信,amazon-web-services,docker,amazon-ecs,Amazon Web Services,Docker,Amazon Ecs,AWS Beanstalk上的docker容器之间是否有双向通信的方法 我尝试使用的堆栈非常标准:Varnish->Nginx->PHP-FPM 我使用规范指定nginx应该找到主机名“php-app”。Nginx找到php应用程序主机名,这样就可以了。但是,我还需要“php应用程序”能够解析主机名“varnish”,以便“php应用程序”可以发送清除请求以使缓存失效 基本上,现在只有这种沟通有效: [varnish:80]->[nginx:8080]->[php应用程序] 然而,这应该是可行的

AWS Beanstalk上的docker容器之间是否有双向通信的方法

我尝试使用的堆栈非常标准:Varnish->Nginx->PHP-FPM

我使用规范指定nginx应该找到主机名“php-app”。Nginx找到php应用程序主机名,这样就可以了。但是,我还需要“php应用程序”能够解析主机名“varnish”,以便“php应用程序”可以发送清除请求以使缓存失效

基本上,现在只有这种沟通有效:

[varnish:80]->[nginx:8080]->[php应用程序]

然而,这应该是可行的:

[varnish:80]->[nginx:8080]->[php应用程序]---清除-->[varnish:80]

php应用程序基本上只需要知道varnish主机的IP,但是这似乎是不可能的

我知道我也可以从主机获得varnish容器ip,但我只想从php应用程序容器中获得相同的ip:

VARNISH_HASH=`docker ps | grep varnish | sed 's/\|/ /' | awk '{print $1}'`
VARNISH_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' $VARNISH_HASH`
我还尝试向php应用程序容器添加链接,但这导致部署时出现错误,我猜这是因为存在循环依赖关系:

"links": [
    "varnish"
]
我的相关dockrun.aws.json(容器定义文件)如下所示:

{
  "AWSEBDockerrunVersion": 2,
  "volumes": [ 
      .....
  ],
  "containerDefinitions": [
    {
      "name": "nginx-proxy",
      "image": "nginx",
      "essential": true,
      "memory": 128,
      "links": [
        "php-app"
      ],
      "portMappings": [
        {
          "hostPort": 8080,
          "containerPort": 8080
        }
      ],
      "environment": [
        {
          "name": "NGINX_PORT",
          "value": "8080"
        }
      ],
      "mountPoints": [ .... ]
    },
    {
      "name": "varnish",
      "hostname": "varnish",
      "image": "newsdev/varnish:4.1.0",
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80
        }
      ],
      "links": [
        "nginx-proxy",
        "php-app"
      ],
      "mountPoints":  [ .... ]
    },
    {
      "name": "php-app",
      "image": "peec/magento2-php-fpm-aws",
      "essential": true,
      "memory": 1024,
      "environment": [
      ],
      "mountPoints":  [ .... ]
    }
  ]
}

你找到答案了吗?我正在搜索类似的内容,但我的印象是,在同一实例上使用multicontainer docker时,不需要使用“links”参数。解决方案是什么?看起来链接是单向的。