Как сделать мой порт контейнера доступным вне контейнера? ECS - AWS - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь запустить контейнер Docker в ECS в качестве задачи. Я создал базовое приложение express, которое прослушивает порт 3000. Вот мои настройки AWS. У меня есть кластер ECS с одной задачей.

enter image description here

У меня в хранилище AWS есть контейнер, который выполняется как задача в этом кластере.

{
  "executionRoleArn": "arn:aws:iam::035892600013:role/ecsTaskExecutionRole",
  "containerDefinitions": [
    {
      "dnsSearchDomains": null,
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/first-run-task-definition",
          "awslogs-region": "us-west-2",
          "awslogs-stream-prefix": "ecs"
        }
      },
      "entryPoint": [],
      "portMappings": [
        {
          "hostPort": 3000,
          "protocol": "tcp",
          "containerPort": 3000
        }
      ],
      "command": [],
      "linuxParameters": null,
      "cpu": 0,
      "environment": [],
      "ulimits": null,
      "dnsServers": null,
      "mountPoints": [],
      "workingDirectory": null,
      "dockerSecurityOptions": null,
      "memory": null,
      "memoryReservation": null,
      "volumesFrom": [],
      "image": "035892600013.dkr.ecr.us-west-2.amazonaws.com/test-express:latest",
      "disableNetworking": null,
      "healthCheck": null,
      "essential": true,
      "links": [],
      "hostname": null,
      "extraHosts": null,
      "user": null,
      "readonlyRootFilesystem": null,
      "dockerLabels": null,
      "privileged": null,
      "name": "test-express"
    }
  ],
  "placementConstraints": [],
  "memory": "512",
  "taskRoleArn": null,
  "compatibilities": [
    "EC2",
    "FARGATE"
  ],
  "taskDefinitionArn": "arn:aws:ecs:us-west-2:035892600013:task-definition/first-run-task-definition:5",
  "family": "first-run-task-definition",
  "requiresAttributes": [
    ...
  ],
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "networkMode": "awsvpc",
  "cpu": "256",
  "revision": 5,
  "status": "ACTIVE",
  "volumes": []
}

Из JSON видно, что контейнер прослушивает порт 3000, но я не могу получить доступ к приложению на url:3000. Это просто вращается. Что еще мне не хватает?

Я попытался свернуть приложение и ничего не получил. Завиток просто сидит в ожидании ответа. Я проверил, что приложение работает в контейнере. Вот журналы:

enter image description here

...