我正在尝试将docker容器映像部署为AWS使用ECS,但未创建EC2实例。我在互联网上搜寻了有关为什么收到以下错误的解释:
docker
AWS
ECS
“调用RunTask操作时发生客户端错误(InvalidParameterException):在群集中未找到容器实例。”
这是我的步骤:
1.将Docker映像从Ubuntu推送到我的Amazon ECS存储库。
2.注册了ECS任务定义:
aws ecs register-task-definition --cli-input-json file://path/to/my-task.json
3.处理任务:
aws ecs run-task --task-definition my-task
然而,它失败了。
这是我的任务:
{ "family": "my-task", "containerDefinitions": [ { "environment": [], "name": "my-container", "image": "my-namespace/my-image", "cpu": 10, "memory": 500, "portMappings": [ { "containerPort": 8080, "hostPort": 80 } ], "entryPoint": [ "java", "-jar", "my-jar.jar" ], "essential": true } ] }
我也尝试过使用管理控制台来配置集群和服务,但是却遇到了同样的错误。如何将群集配置为具有ec2实例,我需要使用哪种容器实例? 我以为整个过程都是从创建EC2实例开始的!
经过几个小时的调查,我发现了这一点。亚马逊,如果您正在侦听,则在创建集群或向集群添加实例时,应在管理控制台中的某个位置声明以下内容:
“在将ECS实例添加到群集之前,必须首先转到EC2管理控制台并创建ecs- optimized具有AmazonEC2ContainerServiceforEC2Role附加了策略的IAM角色的实例”
ecs- optimized
AmazonEC2ContainerServiceforEC2Role
这是一个难题:
1.转到您的EC2仪表板,然后单击Launch Instance按钮。
Launch Instance
2.在下Community AMIs,搜索ecs-optimized,然后选择最适合您的项目需求的一种。任何都可以。点击下一步。
Community AMIs
ecs-optimized
3.当您进入配置实例详细信息时,单击,create new IAM role link然后创建一个名为的新角色ecsInstanceRole。
create new IAM role link
ecsInstanceRole
4.将AmazonEC2ContainerServiceforEC2Role策略附加到该角色。
5.然后,完成ECS实例的配置。 注意: 如果要创建Web服务器,则需要创建一个securityGroup以允许访问端口80。
几分钟后,实例初始化并运行后,您可以刷新“ ECS实例”选项卡,您也尝试添加实例。