当前位置: 首页 > 知识库问答 >
问题:

将多个docker容器部署到AWS ECS

经伟
2023-03-14

我使用docker-composing创建了一个Docker容器。在我的本地环境中,我能够毫无问题地启动我的应用程序。

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

似乎我必须按照以下步骤将docker容器逐个部署到ECS上,

  1. 从ECS控制面板,创建一个Docker映像存储库。
  2. 将本地Docker客户端与ECS中的Docker凭据连接:
  3. 从上一步复制并粘贴Docker login命令。这将使您登录24小时
  4. 在本地标记您的图像以准备推送到您的ECS存储库-使用第一步中的repo URI
  5. 将图像推送到您的ECS存储库\
  6. 使用Web UI创建任务,或手动作为JSON文件
  7. 使用Web UI创建集群
  8. 运行您的任务,指定要在其上运行的EC2集群

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

共有2个答案

和和煦
2023-03-14

我的处境和你一样。解决这个问题的一种方法是使用Terraform将容器作为任务定义部署到AWS ECS上。

因此,我们使用docker compose。yml在本地运行,terraform是我们在AWS上编写docker的一种镜像。

另一个选项是库伯内特斯,您可以将其从docker-composing转换为库伯内特斯资源。

沈俊美
2023-03-14

当你使用ECS时,Docker Compose在这里是错误的。

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

容器定义(ContainerDefinitions)是AWS::ECS::TaskDefinition资源的一个属性,用于描述亚马逊EC2容器服务(Amazon ECS)容器的配置

Type: "AWS::ECS::TaskDefinition"
Properties: 
  Volumes:
    - Volume Definition
  Family: String
  NetworkMode: String
  PlacementConstraints:
   - TaskDefinitionPlacementConstraint
  TaskRoleArn: String
  ContainerDefinitions:
    - Container Definition

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

 类似资料:
  • 问题内容: Docker新手在这里。 我已经设置了docker容器来运行一个简单的Node JS应用程序。 假设我有一个新版本的应用程序(例如 1.1 ),必须由Jenkins CI进行部署。在这里,我对Jenkins CI到底应该做什么应该有所了解: 应该关闭并删除旧容器( 1.0 )并启动新实例 1.1 吗? 要么 应该进入当前运行的容器并仅更新代码吗? 问题答案: 使用CI / CD工具(如

  • 问题 是否有一种方法可以将本地计算机上的docker容器部署到CloudFoundry?如果没有,那么有什么方法可以安全地将容器寄存到CF的某个地方来获取它们呢? CloudFoundry是否能够运行作为Python烧瓶应用程序的docker容器?

  • 问题内容: 我正在尝试部署使用docker-compose构建的应用程序,但是感觉好像我朝着完全错误的方向前进。 我的一切工作都在本地进行-通过适当的网络和主机启动我的应用程序。 我希望能够在生产机器上运行容器和网络的相同配置,而只是使用不同的文件。 我当前的工作流程如下所示: 在这一点上,我希望当它们到达那里时能够再次运行,但这试图根据文件重建容器。 我有一种明显的失落感。我是否应该通过完整的应

  • 我是Azure Kubernetes的新手。我试图将一个简单的。NET核心web api部署到Azure Kubernetes。我刚刚在VS 2019中创建了默认的天气项目。我可以在当地的Docker运行它。我还可以毫无问题地将图像推送到Azure容器存储库。 当我这样做时,我会得到错误: 警告失败(x4超过15秒)kubelet,aks-agentpool-30270636-vmss000000

  • 问题内容: 我正在尝试完成有关如何在Azure域/环境中正确使用Windows容器的架构研究,其中我必须将Dot Net Core Web API应用程序容器化并将该容器部署到Azure容器服务中 这是我做的事情 我确实在Azure门户中创建了Azure容器服务帐户/域/虚拟机 此外,我确实使用已安装Docker的容器为Windows Server 2016创建了另一个虚拟机 在Windows S

  • 我想将Redmine Docker映像部署到Azure App Services,并将其指向部署到Azure数据库for MySql服务器的MySql实例。这将为我提供一个完全管理的体系结构。我已经创建了一个MySql实例,可以使用MySql Workbench从本地PC连接到它。不幸的是,我部署到应用服务的Redmine Docker映像无法启动。日志显示:实例******上的Docker经历了