Tag: 亚马逊 ECS

如何将文件从主机装载到ECS上的Docker容器

我想从我的主机-EC2挂载一个文件到一个在ECS服务器上运行的容器。 在主机上的文件上发生的每一个变化都应该在容器中的文件上更新。 我试过的是如下: Dockerfile: FROM nginx COPY conf/default.conf /etc/nginx/conf.d/default.conf volume /etc/nginx/conf.d RUN ln -sf conf/default.conf /etc/nginx/conf.d/ EXPOSE 80 然后在ECR Repo上推送图像并创build任务,添加卷(源path:conf),挂载点(/etc/nginx/conf.d),并创build服务来运行容器。 然而,我在主机服务器上做的每一个改变,dir:/conf/default.conf都不能在容器/etc/nginx/conf.d/default.conf 我知道docker运行-v,但是当我使用ECR时,它通过设置运行容器本身。 任何build议,将不胜感激。

ecsdocker集装箱中芹菜工人的奇怪行为

我们有一些c4.large ecs实例,每个实例都有一个正在运行的c4.large容器,运行芹菜工作者。 我们不时看到工人被系统所杀 WorkerLostError('Worker exited prematurely: signal 9 (SIGKILL).',) 在dmesg我可以看到以下行: Memory cgroup out of memory: Kill process 27886 (celery) score 112 or sacrifice child 据我所知OOM是负责这一点 但是我也可以在dmesg看到这一行: memory: usage 964544kB, limit 1048576kB, failcnt 246284 其中说1 GB有一个限制,但我不明白这个限制的原因是什么,因为free -m说 total used free shared buffers cached Mem: 3768 3461 307 0 140 2211 -/+ buffers/cache: 1108 2659 Swap: 0 […]

我如何将自动调节组连接到我的ecs集群?

在ECS的所有教程中,您需要创build一个群集,然后创build一个自动调整群组,以产生实例。 不pipe怎么样,在所有这些教程中,这些实例奇迹般地显示在集群中,但是没有人提供连接自动调节组和集群的提示。 我的自动缩放组按照预期产生实例,但是他们只是不显示在我的ecs集群上,他们持有我的docker定义。 我错过了什么连接?

我可以configurationECS自动清除我的EC2实例中的旧容器吗?

我有什么感觉像一个相当标准的ECS部署: 我的集群由两个EC2实例支持,两个EC2实例都运行CoreOS 集群有less数服务,每个服务都有相关的任务 每个服务一次运行一个任务 – 通常是最新的任务定义 我的任务定义中使用的容器图像托pipe在ECR中 好几次,现在我已经部署了一个新的服务实例,只是为了让ECS不高兴,因为它无法在我的EC2实例上find新映像的空间 – 我在CloudWatch中得到“设备上没有剩余空间”的错误。 如果我进入实例SSH,我发现它有一个所有我的Docker镜像和容器的旧版本 – 几乎是前者的500,后者是500。 我可以通过手动运行docker rm和docker rmi命令来释放磁盘空间,但我天真地认为这是ECS为我pipe理的事情。 当我设置服务和任务时,我通常不会与单个主机或容器交互 – 我信任ECS为我安排容器。 我预计它也会清除旧的容器映像,以根据需要释放磁盘空间。 (我知道这不是由Docker提供的function。) 我可以设置警报来监视我的EC2实例上的磁盘空间,并根据需要login到可用磁盘空间 – 但是我想知道是否我错过了一些东西。 我可以告诉ECS从我的EC2实例中清除旧的/未使用的容器[images]吗?

是2在AWS上正确部署容器的最低实例数?

所以我现在很忙,试图正确部署我的第一个dockerised应用程序。 它在本地和昨天完美运行,在这里有人的帮助下 ,我能够在Amazon EC2上的nano实例的背景下运行它,然后注销该实例并观察至less一段时间它运行完美,直到我login并停止。 然而,我怀疑这是一个黑客,他写道: 请注意,如果您的容器内的应用程序进程崩溃,容器将仍然停止。 这是使用诸如AWS ECS之类的协调器来定义试图始终运行一定数量的任务的服务的原因之一。 ECS还帮助将Docker容器放到实例上,并自动在后台为您启动。 所以我一直在疯狂地阅读这些教程 ,在ECS CLI上安装nano实例的东西。 当我看到有人在这里写了关于EC2和ECS之间的区别时,我开始怀疑2是正确部署的最小实例数。 这是真的? 一个运行应用程序,另一个看运行它? 如果是这样的话,我会租用第二个nano实例,并试着把这个ECS放在它上面来观看第一个实例。 我需要一个docker-compose.yml或者完成这个最简单的方法是什么?

使用docker composer在AWS beanstalk上部署docker

我试图在AWS beanstalk上部署多个node.js微服务,并且希望将它们部署在同一个实例上。 这是我第一次部署多个服务,所以有一些失败,我需要有人来帮助我。 所以,我试图首先将它们打包在docker集装箱中。 同时我正在使用dockercomposer php来pipe理这个结构。 它在本地虚拟机上启动并运行,但是当我部署到beanstalk时,遇到了一些问题。 我知道的: 我知道我必须select部署为多容器泊坞窗。 pipe理多个node.js服务的最佳实践是使用docker composer。 我需要为node.js应用程序使用dockerrun.aws.json 。 我需要为该ecs实例创build任务定义。 我遇到问题的地方: 我只能findphp的dockerrun.aws.json和task_definition.json模板,所以我无法validation这两个json文件中的node.jsconfiguration是否处于正确的形状。 看起来像docker-compose.yml , dockerrun.aws.json和task_definition.json正在做类似的工作。 我必须保持task_definition,但我仍然需要dockerrun.aws.json? 我试图在ecs中运行这个任务,但是它立刻停止了。 我怎样才能检查日志的任务? 我有: 在环境中找不到ecs任务定义(或空定义文件) 因为我的任务总是会立即停止。 如果我可以查看日志,那么我可以更容易地进行故障排除。 这是我的task_definition.json : { "requiresAttributes": [], "taskDefinitionArn": "arn:aws:ecs:us-east-1:231440562752:task-definition/ComposerExample:1", "status": "ACTIVE", "revision": 1, "containerDefinitions": [ { "volumesFrom": [], "memory": 100, "extraHosts": null, "dnsServers": null, "disableNetworking": null, "dnsSearchDomains": null, "portMappings": [ { […]

如何识别我的容器是否在AWS ECS上运行?

如果我在AWS ECS(EC2容器服务)中运行基于Docker的容器,有没有办法从应用程序内部识别我的容器是否在AWS ECS上运行? 这是必需的,因为我的docker容器可以在任何平台上运行,但是当它在AWS ECS上运行时,我需要执行一些额外的操作。

如何捕获在ECS上启动的容器的控制台输出?

当我使用docker run启动容器时,命令提示符会显示大量有用的信息,这些信息在debugging时非常有用。 ECS有没有一种机制可以让我捕获这些信息? 目前,我正在通过SSH进入容器并手动启动容器来debugging它们,这并不理想。

Docker化的领事,Zookeeper和Amazon-ECS中的Kafka

我试图将一个dockerized Kafka(与Zookeeper)部署到AWS。 我已经梳理了几个资源,并接近。 但是当我在AWS中使用Kafka框时,我可以看到Kafka以-1退出。 我只能假设卡夫卡不能到达Zookeeper,因为我没有设置任何名称parsing。 我正在看Consul作为解决scheme(见这里 )。 这看起来像一个体面的资源 。 但我甚至不能成功运行官方的Consul docker镜像 (在服务器或代理模式下)。 我可以得到这个工作( 在这里使用)。 但是,如果可能的话,我想使用官方的形象。 有没有人得到官方的领事形象与卡夫卡和Zookeeper工作? A)首先,我想我想在docker-compose中工作。 这是我的docker-compose.yml 文件 ,试图让Kafka使用Consul来发现Zookeeper节点。 下面是相关的代码块,你可以运行docker-compose up consul 。 这不显示任何错误。 但是我)我无法达到http:// localhost:8500 。 然后ii)我怎么把卡夫卡指向Zookeeper和Kafka的客户到Kafka? version: '2' services: consul: image: consul:0.8.3 expose: – 8300 – 8301 – 8301/udp – 8302 – 8302/udp – 8400 – 8500 – 8600 – 8600/udp ports: […]

aws ecs优化AMI中的私有dockerregistryauthentication不成功

我正在编写一个用于创buildECS自动缩放集群的terraform脚本。 我已经创build了一个集群并添加了ec2容器实例。我的任务定义文件包含一个来自私有docker repository的映像。我通过aws官方文档find一个Private Registry Authentication页面,并尝试了两种方式如那里所述。 使用dockercfg docker的方式 我把我的ecs.config文件放在S3存储桶中,在实例启动的时候我传递了用户数据 #!/bin/bash yum install -y aws-cli aws s3 cp s3://<my_bucket_name>/ecs.config /etc/ecs/ecs.config 在我的第二种方法中,我将所使用的数据作为 echo "ECS_ENGINE_AUTH_TYPE=docker" >>/etc/ecs/ecs.config echo "ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}" >>/etc/ecs/ecs.config 我在我的/etc/ecs/ecs.config中find数据login到我的容器实例时,但当我尝试手动拉图像时,我显示了一个错误,没有find图像。 然后我尝试dockerlogin命令,并手动input我的凭据,并尝试再次拉那个图像,最终它是成功的。 我不确定是否有一种方法来实现ecs优化图像中的私人dockerregistry身份validation通过用户数据或不自动或如果我做错了什么。 请帮我解决这个问题。