Tag: 亚马逊 ECS

从path中读取文件:AWS EC2容器服务

我正在尝试将不同文件的内容读入Docker容器。 文件存在于EC2主机上,我想读取文件的内容作为任务定义文件环境参数的一部分。 environment": [ { "name": "ENVIRONMENT", "value": "{\"key\":\"value\"}" } ] 这个键值JSON是在一个文件中,我想读它作为环境variables,(不像目前我正在阅读它作为stringJSON)。 我怎样才能做到这一点?

将多个Docker容器部署到AWS ECS

我已经使用docker-compose创build了一个Docker容器。 在我的本地环境中,我能够提出我的申请没有任何问题。 现在我想将所有的Docker容器部署到AWS EC2(ECS)。 在阅读ECS文档之后,我发现我们可以使用相同的docker-compose来使用ECS-CLI在ECS中进行部署。 但是截至目前,ECS-CLI并不适用于windows实例。 所以现在我不知道如何使用我的docker-compose来使用单个命令来构build我的所有镜像,并将其从Windows实例部署到ECS。 好像我不得不像下面的步骤一样将我的docker容器一个一个地部署到ECS, 从ECS控制面板创build一个Docker镜像库。 将您的本地Docker客户端与ECS中的Docker凭据相连: 复制并粘贴上一步中的Dockerlogin命令。 这会将您login24小时 在本地标记图像以准备推送到您的ECS存储库 – 从第一步使用repo URI 将图像推送到您的ECS repoository \ 使用Web UI创build任务,或手动创buildJSON文件 使用Web UI创build一个集群。 运行指定要运行的EC2集群的任务 有没有其他的方式在ECS中运行docker集装箱?

Docker部署Jupyter笔记本电脑与GPU

我正在尝试创build一个群集,可以在使用p2实例创build的AWS GPU群集内部启动带有Tensorflow和Jupyter笔记本的Docker。 我也希望每个用户都有自己的文件夹。 理想情况下,每个实例最多可以运行两个docker,如果需要一个新的docker,我们将启动一个新的实例。 我试图使用AWS ECS来做到这一点,我设法使用Jupyter在TF docker镜像和GPU的固定端口上启动任务。 我也想为每个用户安装一个不同的文件夹,我认为可以在任务定义中使用一个variablesmount / folder / $(userid)/,但这是不可能的。 我也试图自动启动一个新的实例添加到集群,如果实例已经有两个docker运行。 现在我找不到解决这两个问题的办法,我看到Kubernetes可以取代ECS,你认为Kubernetes会是我想要做的一个很好的解决scheme吗? 如果不是我能做些什么来使它与ECS一起工作? 随意给任何build议 谢谢! 这是我目前的dockerconfiguration:我现在没有实现用户文件夹: "containerDefinitions": [ { "volumesFrom": [], "memory": 2048, "extraHosts": null, "linuxParameters": null, "dnsServers": null, "disableNetworking": null, "dnsSearchDomains": null, "portMappings": [ { "hostPort": 0, "containerPort": 8888, "protocol": "tcp" } ], "hostname": null, "essential": true, "entryPoint": [ "jupyter", "notebook", "–no-browser", […]

Rails迁移ECS

我想弄清楚如何运行rake db:migrate我的ECS服务,但只在一台机器上部署后。 任何人都有这方面的经验? 谢谢

使用AWS ECS docker容器,可以将所有三个必需的Zookeeper端口映射到主机? (似乎没有)

每个Zookeeper实例(每个Docker容器一个)需要三个不同用途的端口(端口2181,2888,3888)。 通过这些端口,这些Zookeeper实例(通常是其中的3到5个)的集群相互通信以确定领导者,追随者(等等)。 从我今天的工作(在AWS上)看来, AWS ECS docker containers似乎不能将多个端口映射到容器主机; 所以我怀疑这是无法完成的 – 至less不是没有麻烦,这消除了在这种情况下使用ECS的简单优势。 它是否正确?

了解AWS ECS代理和Docker容器

问这些问题我可能会很傻。 但是我想了解AWS ECS代理在EC2实例中扮演什么与Docker容器进行交互。 这是我的情况 我有2个Docker容器在AWS EC2 linux实例中运行。 我可以使用来自EC2实例的泊坞窗容器IP地址来访问在泊坞窗容器中部署的应用程序的url。 在这种情况下,我做了curl http://172.18.0.1:8080/app1/ 从ECS文档中,我看到我们可以使用ECS实例选项卡中显示的公共IP访问Docker容器内的站点。 我的问题是,当我使用端口号打到公共IP时,ECS如何知道与docker集装箱通话。 任何人都可以帮助我理解这一点吗?

涉及ECS和自定义Java应用程序的假设

请原谅这个post,如果它运行很长或没有多大意义,我不是一个开发人员(希望是有一天,还在学习),我也不是那个熟悉AWS的人。 问题:在我的营业场所,我们启动了EC2,然后我们的团队立即将RDPjoin其中,并安装各种定制软件。 作为我们公司hackathon的一部分,我正试图减less依赖性,并简化/自动化我提到的许多手动安装。 起初,我开始通过创buildC#命令行程序来解决问题,并成功。 该程序自动安装任何额外的软件,并为FTP客户端生成configuration文件。 我们还更新了我们旋转EC2的图像,以包含额外的依赖项(ruby,.net等)。 注意到每个EC2都需要ftp客户端的一组不同的configuration文件。 但是现在我已经意识到,这可能都是通过ecs / docker / lambda的组合自动完成的。 我试图完成的工作:当EC2启动时,ECS将parameter passing给EC2上的应用程序来configuration另一个应用程序(或者ECS可以在不需要另一个应用程序的情况下执行此操作),并安装自定义服务可能已经将服务作为映像的一部分安装,然后触发它作为ECS的一部分启动?)。 我知道这是一个混乱的混乱,我知道XY的问题。 我只是想确保我在解决这个问题上迈出了正确的一步。 所以,如果我在这里离开赛道,可以随意指向正确的方向。 非常感谢!

使用ECS的Docker级别负载平衡

我使用弹性beanstalk将Web服务部署为使用ECS的AWS上的Docker容器。 EBS中的默认负载均衡器提供了networking级自动调节function,可以处理EC2实例的负载。 如何在应用程序级别处理自动扩展,并使用像Kubernetes这样的ECS处理docker的dockerizationfunction? 当我收到更多的内存或CPU使用率时,我想扩展我的个人泊坞窗。 请帮我做到这一点。

AWS ECS如何从一个容器向另一个容器调用服务

我有一个具有2个EC2实例的Auto Scaling组的ECS群集。 另外我有3个服务,每个服务都有自己的任务定义。 每个EC2实例为每个服务运行一个docker容器。 因此,我在每个EC2实例中都有3个docker容器。 每个docker集装箱只需运行一个弹簧启动应用程序。 由于我有3个服务,那么我有3个春季启动应用程序。 同样,一个容器只运行这3个spring启动应用程序中的一个。 每个应用程序公开一个rest的API,诸如/ service1或/ service1 / resource1之类的URL下的POST,GET等服务。 这里重要的一点是我在容器的主机中使用dynamic端口映射。 我有一个端口443的外部(面向Internet的)ALB,它有3个目标组。 根据URL,请求将转到3个应用程序(或容器)之一。 我的问题有时是应用程序需要向应用程序B发出http请求。我的EC2实例位于私有子网中,而我的ALB位于公有子网中。 因此,如果我使用ALB将容器内的http请求发送给另一个容器,那么请求将通过NAT进行,而且由于NAT的公共IP不是ALB的安全组的一部分,无法在端口443上连接。我有2种方法可以使这项工作: 在白名单白名单0.0.0.0/0的安全组中。 我不想这样做,因为整个世界都可以访问。 在ALB的安全组中,将NAT的公共IP列入白名单。 我不确定这种方法。 这是可取的吗? 我试图实现的第三个选项是有一个第三个负载平衡器,一个内部的。 但是我迷失在这里,按照AWS文档,您只能将1负载均衡器分配给您的服务。 而且由于我们使用的是dynamic端口映射,我没有看到手动创buildALB并使用dynamic自动分配的端口的方法。 你们如何在容器之间进行这种连接,其中一个容器使用其他服务提供的服务? 作为最后的评论,我使用云形成所有。 没有从控制台手动设置。 谢谢,

健康的ECS容器返回504

使用容器中的7种不同服务pipe理AWS ECS群集。 应用程序负载平衡器与目标组和path基于路由。 应用程序是.NET Core WebApi,没有什么特别的或不寻常的。 健康检查是正常的,目标正在工作(自动缩放也是如此)。 有时(没有任何模式)所有的服务(或大多数)开始返回504没有理由。 健康检查还行。 日志表明请求没有到达容器。 这是一个错误或function,以及如何解决它? 到目前为止重新启动容器的工作,但这不能是一个永久的解决scheme。