Docker 与 awsvpc 网络模式链接
Docker links with awsvpc network mode
我使用 tomcat:8.5-jre8-alpine 图像在 ECS 中部署了一个 Java webapp。本次任务的网络模式为awsvpc;我在一个 ALB 前面的 3 个 EC2 实例中有许多这样的任务 运行。
这工作正常,但现在我想在每个 tomcat 容器前添加一个 nginx 反向代理,类似于此示例:https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy.
我的缩写容器定义文件是:
{
"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"
}
当我尝试保存新任务定义时收到错误消息:"links are not supported when the network type is awsvpc"
我正在使用 awsvpc 网络模式,因为它可以让我通过安全组精细控制入站流量。
在使用 awsvpc 网络模式时,是否有任何方法可以创建具有 2 个链接容器的任务定义?
实际上,如果您想使用反向代理,您可以停止使用链接,因为您可以进行服务发现或使用您的反向代理来使用您的依赖项。
如果您仍想使用 link
而不是使用那个反向代理,您可以使用 consul and Fabio。这两种服务都是可停靠的。
有了这个,就没有必要使用 awsvpc 了,你可以使用 consul 来进行服务发现。
希望对您有所帮助!
您根本不需要链接部分,因为 awsvpc 允许您仅通过使用
来引用其他容器
localhost:8080
(或其他容器映射到的任何端口)
在你的 nginx 配置文件中。
因此从您的 json 中删除链接并在 nginx 配置中使用 localhost:{container port}
。就这么简单。
我使用 tomcat:8.5-jre8-alpine 图像在 ECS 中部署了一个 Java webapp。本次任务的网络模式为awsvpc;我在一个 ALB 前面的 3 个 EC2 实例中有许多这样的任务 运行。
这工作正常,但现在我想在每个 tomcat 容器前添加一个 nginx 反向代理,类似于此示例:https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy.
我的缩写容器定义文件是:
{
"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"
}
当我尝试保存新任务定义时收到错误消息:"links are not supported when the network type is awsvpc"
我正在使用 awsvpc 网络模式,因为它可以让我通过安全组精细控制入站流量。
在使用 awsvpc 网络模式时,是否有任何方法可以创建具有 2 个链接容器的任务定义?
实际上,如果您想使用反向代理,您可以停止使用链接,因为您可以进行服务发现或使用您的反向代理来使用您的依赖项。
如果您仍想使用 link
而不是使用那个反向代理,您可以使用 consul and Fabio。这两种服务都是可停靠的。
有了这个,就没有必要使用 awsvpc 了,你可以使用 consul 来进行服务发现。
希望对您有所帮助!
您根本不需要链接部分,因为 awsvpc 允许您仅通过使用
来引用其他容器localhost:8080
(或其他容器映射到的任何端口) 在你的 nginx 配置文件中。
因此从您的 json 中删除链接并在 nginx 配置中使用 localhost:{container port}
。就这么简单。