docker - AWS ECS awsvpc 在本地主机上没有通信
问题描述
我遇到了 ECS Fargate 上的容器问题,更具体地说,一个任务中的 2 个容器相互通信。
根据链接的文章(https://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/),一旦在任务内部配置了两个容器,任务中的任何其他容器都应该能够仅使用localhost或127.0.0.1与该容器通信。
但是我似乎无法得到这种行为。我尝试将其分解为最简单的形式——在 1 个容器上运行 nginx,端口映射为 80,在另一个容器上运行一个简单的 curl 命令,但没有任何乐趣。
我是否遗漏了一些我需要做的事情或一些配置,以使 2 个容器在 ECS 任务定义中通过localhost或127.0.0.1进行通信?
包含 2 个容器的任务定义的 JSON 文件:
{
"requiresCompatibilities": [
"FARGATE"
],
"inferenceAccelerators": [],
"containerDefinitions": [
{
"name": "container-a",
"image": "******.dkr.ecr.eu-west-1.amazonaws.com/repository-a:latest",
"memoryReservation": "2048",
"cpu": "1024",
"resourceRequirements": null,
"essential": true,
"portMappings": [
{
"containerPort": "5000",
"protocol": "tcp"
}
],
"environment": null,
"environmentFiles": [],
"secrets": null,
"mountPoints": null,
"volumesFrom": null,
"hostname": null,
"user": null,
"workingDirectory": null,
"extraHosts": null,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/test-task-definition",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "ecs"
}
},
"ulimits": null,
"dockerLabels": null,
"dependsOn": null,
"repositoryCredentials": {
"credentialsParameter": ""
}
},
{
"name": "container-b",
"image": "******.dkr.ecr.eu-west-1.amazonaws.com/repository-b:latest",
"memoryReservation": "2048",
"cpu": "1024",
"resourceRequirements": null,
"essential": true,
"portMappings": [],
"environment": null,
"environmentFiles": [],
"secrets": null,
"mountPoints": null,
"volumesFrom": null,
"hostname": null,
"user": null,
"workingDirectory": null,
"extraHosts": null,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/test-task-definition",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "ecs"
}
},
"ulimits": null,
"dockerLabels": null,
"dependsOn": null,
"repositoryCredentials": {
"credentialsParameter": ""
}
}
],
"volumes": [],
"networkMode": "awsvpc",
"memory": "4096",
"cpu": "2048",
"executionRoleArn": "arn:aws:iam::******:role/ecr-execution-role",
"family": "test-task-definition",
"taskRoleArn": "arn:aws:iam::******:role/ecs-task-role",
"tags": []
}
解决方案
推荐阅读
- c++ - 如何在 QT 中为 QInputDialog 输入密码时设置背景不活动和灰色?
- wordpress - 我想将默认徽标大小 400 更改为 1100 宽度。怎么做?
- java - 线程“主”java.lang.ClassCastException 中的异常:setcollection.Enseignant 无法转换为 java.lang.Comparable
- alloy - 如何在合金中创建静态模型?
- laravel - Laravel Eloquent\Collection::save does not exist
- php - 多个内部 SQL 命令
- ssas - MDX 查询以提取日期并将其用作字符串来过滤数据
- typo3 - 自定义 TYPO3Fluid inArray viewhelper 在第一页加载时无法正常工作
- reactjs - React counter hook doesn't increment
- ios - SwiftUI Button 比例宽度高度