我刚刚更新了我的docker版本并找到了该命令
aws ecr get-login
Run Code Online (Sandbox Code Playgroud)
不再工作了.得到错误:
未知的速记标志:'e'在-e`中.似乎docker不再支持-e标志了.
有没有办法来解决这个问题?
已安装的版本:
aws-cli/1.11.111 Python/2.7.10 Darwin/16.6.0 botocore/1.5.74
Docker version 17.06.0-ce-rc5, build b7e4173
Run Code Online (Sandbox Code Playgroud) 我试图将docker
容器映像部署到AWS
使用ECS
,但是没有创建EC2实例.我已经浏览了互联网,寻找解释为什么我收到以下错误:
"调用RunTask操作时发生客户端错误(InvalidParameterException):在群集中找不到容器实例."
这是我的步骤:
1.将Docker镜像从Ubuntu推送到我的Amazon ECS仓库.
2.注册ECS任务定义:
aws ecs register-task-definition --cli-input-json file://path/to/my-task.json
Run Code Online (Sandbox Code Playgroud)
3.完成任务:
aws ecs run-task --task-definition my-task
Run Code Online (Sandbox Code Playgroud)
然而,它失败了.
这是我的任务:
{
"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
}
]
}
Run Code Online (Sandbox Code Playgroud)
我也尝试使用管理控制台来配置集群和服务,但我得到了同样的错误.如何配置群集以具有ec2实例,以及需要使用哪种容器实例?我认为整个过程是创建EC2实例开始!!
我刚刚开始使用AWS EC2,我知道EC2就像一台远程计算机,我几乎可以做任何我想做的事情.然后我找到了ECS,我知道它使用的是docker,但却被这两者之间的关系搞糊涂了.
ECS只是EC2中的docker安装吗?如果我已经有EC2,那么我启动一个ECS,这是否意味着我有两个实例?
似乎可以基于任务定义运行任务或服务.任务和服务之间有什么区别和相似之处?是否有一个线索,即在创建任务而不是服务时可以指定"任务组"?任务和服务的层次结构是否与任务定义的实例相同,还是由任务组成的服务?
谢谢.
一旦所述图像在相应的注册表中更新后,使我的Amazon ECS任务更新其Docker镜像的正确方法是什么?
我开发了一个基于Docker的应用程序,它由多个微服务组成.它必须使用Amazon SQS消息并处理它们.起初我想使用AWS Elastic Beanstalk,但后来我忽略了EC2容器服务.现在我不知道选择哪一个.
截至目前,Elastic Beanstalk支持多容器环境.这很好,因为每个微服务在docker容器中都有自己的应用程序服务器.下一个问题是缩放:
我不知道缩放机制是如何工作的.例如:我的Elastic Beanstalk环境中有5个docker容器.现在只有第五个docker容器处于高负载状态,因为它有大量的SQS消息需要处理,其他四个几乎都处于空闲状态,因为它们不需要太多的CPU或者可能没有大量的SQS消息.我们假设第5个容器运行JBoss应用程序服务器.据我所知,即使有足够的CPU /内存,服务器也只能消耗有限数量的并行请求.
如果JBoss Docker容器无法处理大量请求,但有足够的CPU /内存可用,当然我想在同一个实例上自动启动第二个Docker/JBoss容器.但是,如果我没有足够的CPU /内存,会发生什么?当然我想转向第二个实例,可以通过EB中的自动缩放组进行配置.现在第二个实例旋转了,但除了第5个以外的每个容器几乎都是空闲的,当然我不希望它们在第二个实例中产生4个不必要的容器,这将浪费资源.只有第5个应该产生,其他应该像第5个比例那样根据可配置参数进行扩展,例如:CPU /内存/ SQS.
我不确切知道Amazon ECS是否正在这样做,或者它是否可能,但我真的无法在互联网上找到关于这个主题的任何来源,一般来说,基于实例/容器进行扩展.
jboss amazon-web-services amazon-ecs docker amazon-elastic-beanstalk
当我使用 cloudformation 进行部署时 aws cloudformation deploy --region $region --stack-name ABC
有错误:
调用 CreateChangeSet 操作时出现错误(ValidationError):Stack:arn:aws:cloudformation:stack/service/7e1d8c70-d60f-11e9-9728-0a4501e4ce4c 处于 ROLLBACK_COMPLETE 状态,无法更新。
请帮我 !
我正在尝试在 aws-ecs-fargate-1.4.0 平台上运行一个私有存储库。
对于私有存储库身份验证,我遵循了文档并且运行良好。
以某种方式更新现有服务多次后,它无法运行任务并抱怨错误,例如
ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to get registry auth from asm: service call has been retried 1 time(s): asm fetching secret from the service for <secretname>: RequestError: ...
Run Code Online (Sandbox Code Playgroud)
我没有更改它ecsTaskExecutionRole
,它包含获取秘密值所需的所有策略。
我正在构建一个由Angular2单页面应用程序和在ECS上运行的REST API组成的系统.API在.Net/Nancy上运行,但这可能会发生变化.
我想尝试一下Cognito,这就是我想象的身份验证工作流程:
我的问题是关于第3步.我的服务器(或者更确切地说:我的无状态,自动扩展,负载平衡的Docker容器)如何验证令牌是否可信?由于"服务器"还没有出台的智威汤逊本身,它不能使用自己的秘密(如在基本JWT例如描述这里).
我已经阅读了Cognito文档并搜索过很多内容,但是我找不到任何关于如何在服务器端使用JWT的好指南.
我正在尝试在AWS ECS中设置一个具有关联数据库的基本Web应用程序.在本地我将这些设置放在不同的容器中,在ECS上,我希望有单独的任务定义,以便我可以单独扩展它们.
david_mongodb
在ECS中成功注册了我的第一个任务定义.它有一个名为的容器david_mongodb
.david_web
,其中有一个名为david_web
链接数据库的容器david_mongodb:db
.单击"创建"时,会返回错误:
Unable to create Task Definition
Linked container 'david_mongodb:db' doesn't exist.
Run Code Online (Sandbox Code Playgroud)似乎任务定义无法在其他任务定义中看到容器名称?我正在考虑将两个容器david_web
和david_mongodb
容器放在同一个任务定义中会起作用,但我不想这样做:它会阻止我单独扩展Web应用程序或数据库.这个概述似乎证实我的架构是推荐的......
那么如何链接生活在不同任务定义中的容器?还是有另一种聪明的方法来处理这个问题?