在 AWS ECS Fargate 上运行多个容器时,有时需要它们之间进行交互。以下是一种解决方法。
"networkMode": "awsvpc", "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "container1", ... }, { "name": "container2", ... } ]
docker network create my_network
"networkMode": "awsvpc", "containerDefinitions": [ { "name": "container1", ... "networks": [ { "name": "my_network" } ] }, { "name": "container2", ... "networks": [ { "name": "my_network" } ] } ]
在容器1中调用容器2的 API:
curl http://container2/api
在容器2中调用容器1的 API:
curl http://container1/api
需要注意的是,若容器需要通过主机之间的网络进行通信,则不能使用 awsvpc 网络模式。