首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有awsvpc网络模式的Docker链接

带有awsvpc网络模式的Docker链接
EN

Stack Overflow用户
提问于 2019-02-19 17:47:06
回答 2查看 6.1K关注 0票数 4

我使用tomcat:8.5-jre8-高寒映像在ECS中部署了一个Java jre8应用程序。这个任务的网络模式是awsvpc;我有许多这样的任务运行在由ALB面对的3个EC2实例中。

这很好,但是现在我想在每个tomcat容器前面添加一个nginx反向代理,类似于下面的示例:https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy

我的缩写容器定义文件是:

代码语言:javascript
复制
{
    "containerDefinitions": [
     {
       "name": "nginx",
       "image": "<NGINX reverse proxy image URL>",
       "memory": "256",
       "cpu": "256",
       "essential": true,
       "portMappings": [
         {
           "containerPort": "80",
           "protocol": "tcp"
         }
       ],
       "links": [
         "app"
       ]
     },
     {
       "name": "app",
       "image": "<app image URL>",
       "memory": "1024",
       "cpu": "1024",
       "essential": true
     }
    ],
    "volumes": [],
    "networkMode": "awsvpc",
    "placementConstraints": [],
    "family": "application-stack"
}

当我试图保存一个新的任务定义时,我收到了一个错误:“当网络类型为awsvpc时,不支持链接”。

我使用awsvpc网络模式,因为它可以通过安全组对入站流量进行粒度控制。

在使用awsvpc网络模式时,是否有任何方法创建带有2个链接容器的任务定义?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-03 18:40:55

您根本不需要链接部分,因为awsvpc允许您通过以下方式引用其他容器

代码语言:javascript
复制
localhost:8080 

(或者您的另一个容器映射到的端口)在nginx配置文件中。

因此,从json中删除链接并在nginx中使用localhost:{container port}。就这么简单。

票数 11
EN

Stack Overflow用户

发布于 2019-02-19 19:36:36

实际上,如果您想使用反向代理,您可以停止使用链接,因为您可以进行服务发现或使用反向代理来使用您的依赖项。

如果您仍然希望使用link,而不是使用反向代理,则可以使用领事法比奥。这两种服务都是可停靠的。

这样,就没有必要使用awsvpc,您可以使用领事进行服务发现。

希望能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54772120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档