将多个 docker 容器部署到 AWS ECS

bab*_*s84 6 amazon-ec2 amazon-ecs docker docker-compose

我使用 docker-compose 创建了一个 Docker 容器。在我的本地环境中,我可以毫无问题地提出我的应用程序。

\n\n

现在我想将所有 docker 容器部署到 AWS EC2 (ECS)。在查看了 ECS 文档之后,我发现我们可以使用相同的 docker-compose 通过 ECS-CLI 在 ECS 中进行部署。但 ECS-CLI 目前不适用于 Windows 实例。所以现在我不知道如何使用 docker-compose 使用单个命令构建所有图像并将其从 Windows 实例部署到 ECS。

\n\n

看来我必须将我的 docker 容器一一部署到 ECS,如下步骤所示,

\n\n
    \n
  1. 从 ECS 控制面板中,创建 Docker 映像存储库。
  2. \n
  3. 将本地 Docker 客户端与 ECS 中的 Docker 凭证连接起来:
  4. \n
  5. 复制并粘贴上一步中的 Docker 登录命令。这将使您登录 24 小时
  6. \n
  7. 在本地标记您的映像,准备推送到 ECS 存储库 \xe2\x80\x93 使用第一步中的存储库 URI
  8. \n
  9. 将镜像推送到您的 ECS 存储库\\
  10. \n
  11. 使用 Web UI 创建任务,或手动创建 JSON 文件
  12. \n
  13. 使用 Web UI 创建集群。
  14. \n
  15. 运行指定要运行的 EC2 集群的任务
  16. \n
\n\n

还有其他方法可以在 ECS 中运行 docker 容器吗?

\n

Ste*_*ing 3

当你使用 ECS 时,Docker-Compose 在这个地方是错误的。

您可以在任务定义中配置多个容器,如CloudFormation 文档中所示:

ContainerDefinitions是AWS::ECS::TaskDefinition资源的属性,用于描述 Amazon EC2 Container Service (Amazon ECS) 容器的配置

Type: "AWS::ECS::TaskDefinition"
Properties: 
  Volumes:
    - Volume Definition
  Family: String
  NetworkMode: String
  PlacementConstraints:
   - TaskDefinitionPlacementConstraint
  TaskRoleArn: String
  ContainerDefinitions:
    - Container Definition
Run Code Online (Sandbox Code Playgroud)

只需在那里列出多个容器,所有容器都会在同一台机器上一起启动。