Tag: 亚马逊 ec2

在AWS EC2实例上部署Docker容器而不login

我是一个微服务初学者,已经花了几个小时在AWS的最微小的痛苦的东西,将不胜感激任何专家的意见,因为我怀疑下一步是非常小的,但可能需要几个小时,否则工作。 所以我部署了一个nano实例,然后ssh到它。 不得不实际重做它来修复安全组,但无论如何它最终会奏效。 使用scp把我的docker图像放在那里,按照这里的说明,在docker save汇总里docker save一个.tar的图像在本地, docker load后放到系统上,等待15分钟后scp上传。 然后在命令提示符下inputdocker run。 在过去的三天里,已经采取了这些(linux)terminal措施,曾经两次尝试过,并且无法从AWS控制台执行,就像上传的那样,但是不会运行。 现在,当我inputdocker run my_image时,它运行得非常奇妙,我可以在这里看到docker run my_image和docker run my_image docker ps -a命令。 但是,我的AWS实例上的命令提示符正在运行,如果我closuresterminal窗口,它肯定会死亡。 现在我知道它在那里工作,我怎么能“部署”它,即让它运行并继续运行一个月或直到另行通知? 我认为它可能需要某种称为“任务定义”的json文件,但是根本不知道下一步该做什么。 这个任务定义和所有剩下的任务可以在login到实例的terminal中完成吗?

AWS ECS是否支持每个容器的dynamic可伸缩性?

Amazon的EC2容器服务允许您运行任意数量的容器,它将select一个EC2实例自动运行容器。 哪些是很棒的function 但是,我们真的关心自动可伸缩性 。 场景: 我通过AWS ECS控制台启动容器。 HTTP请求正在开始。 HTTP负载随着时间显着增加。 容器的CPU(或RAM)使用率正在接近100%。 问题1:ECS会自动运行一个容器吗? 问题2:当CPU(或RAM)负载变低时,ECS会自动closures其中一个容器吗?

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 […]

docker工人:“networking”不是docker指挥官

我最近通过使用命令在aws ec2实例中安装了docker $ yum install docker 但是,当我尝试运行$ docker network –help它说 docker: 'network' is not a docker command. 请让我知道这里有什么问题。 这是docker版本的输出 Client version: 1.7.1 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 786b29d/1.7.1 OS/Arch (client): linux/amd64 Server version: 1.7.1 Server API version: 1.19 Go version (server): go1.4.2 Git commit (server): 786b29d/1.7.1 OS/Arch (server): linux/amd64

docker命令从运行的docker /进程

在我的设置中,我们使用Amazon ECS基础架构启动Docker容器。 我知道docker正在运行的EC2机器(主机),可以看到容器ID。 有了这些信息,无论如何,我可以计算出用来运行容器的docker命令吗? 例如 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d02739ac9a59 dockerhub.amazonaws.com/something "/script.sh" 32 minutes ago Up 32 minutes ecs-production cf47d404c6ba amazon/amazon-ecs-agent:v1.7.1 "/agent" About an hour ago Up About an hour 127.0.0.1:51678->51678/tcp ecs-agent 我有这个。 我想知道,那是什么 sudo docker run <various configuration parameters>

Docker容器中的'aws configure'不会使用环境variables或configuration文件

所以我有一个Docker容器在AWS上运行jenkins和一个EC2registry。 我想让jenkins把容器推回EC2registry。 要做到这一点,我希望能够自动化aws configure并get login容器启动get login步骤。 我觉得我可以做到 export AWS_ACCESS_KEY_ID=* export AWS_SECRET_ACCESS_KEY=* export AWS_DEFAULT_REGION=us-east-1 export AWS_DEFAULT_OUTPUT=json 我期望导致aws configure自动完成,但是这不起作用。 然后,我尝试按照AWS文档创buildconfiguration,然后重复这个过程,这也是行不通的。 然后我尝试使用aws configure set也没有运气。 我在这里疯狂,我做错了什么?

如何理解Amazon ECS群集

我最近尝试使用AWS的任务定义部署Docker容器。 一路上,我遇到了以下问题。 如何将实例添加到集群? 使用Amazon ECS控制台创build新集群时,如何将新的ec2实例添加到新集群。 换句话说,启动新的ec2实例时,需要使用哪种configuration才能将其分配给Amazon ECS下的用户创build的群集。 集群中需要多less个ECS实例,这些因素是什么? 如果在集群中有两个实例(ins1,ins2),并且我的webapp,db容器正在ins1中运行。 在更新运行服务(通过http://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html )之后,我可以看到新创build的服务在“ins2”中运行,旧的服务在“ins1”。 我的问题是,我的webapp容器分配给另一个实例后,访问IP地址成为另一个实例IP。 如何防止或者什么解决scheme使得相同的IP地址访问webapp? 不仅IP,更换新实例后的数据如何?

ec2上的Amazon的Docker的最新版本是否被破坏?

截至昨天晚上,我们所有的新docker部署都开始失败,因为亚马逊回购docker中最新版本的docker(docker-1.3.2-1.0.amzn1.x86_64)无法启动。 重现的步骤是: ## Launch instance with default amazon AMI yum install docker-1.3.2-1.0.amzn1.x86_64 service docker restart ### Get the following error in /var/log/docker 2014/11/26 05:14:16 docker daemon: 1.3.2 c78088f/1.3.2; execdriver: native; graphdriver: [8f6d7cfb] +job serveapi(unix:///var/run/docker.sock) [info] Listening for HTTP on unix (/var/run/docker.sock) docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with […]

如何从Docker Hub私人回购在EC2 ECS上部署Docker容器?

我在一个私人Docker Hub存储库中有一个镜像,我试图在Amazon的Elastic Container Service上部署这个镜像。 似乎有一个很好的Web控制台从公共存储库运行一个容器,但没有私人的。 我已经阅读并尝试了解这方面的文档 ,但我不明白与部署容器有什么关系,因为它声明“Amazon ECS容器代理允许容器实例连接到您的集群”。 作为使用Web控制台的替代方法,我看到提到了设置任务定义。 这听起来像是Web控制台的手动版本。 我怀疑我最好的select是用这种方法,可能在这里的脚本的帮助下。 我在ECS上运行现有映像的最简单方法是托pipe在私有存储库中?

如何自定义Elastic Beanstalk上的docker run命令?

这是事情,我需要告诉Docker不要集装箱的networking,因为它需要连接到一个VPN(企业专用DB)内的MongoDB。 有一个Docker命令,让我做到这一点:– –net=host 。 在这里引用。 所以,例如,当我的本地机器上运行容器,我会做这样的事情: docker run –rm -it –net=host [image-name]:[version] bash -il 而这个命令将会诀窍。 由此,我可以连接到“私人”的MongoDB。 所以,我的问题是:有没有一种方法定制Elastic Beanstalk上单个Docker环境的–net=host docker run命令,以便我可以添加–net=host ? 我已经尝试使用container_commands到config.yml文件来添加该指令,但我不认为这是我所需要的,这里是一个片段: container_commands: 00-test_command: command: bundle exec thin –net=host 01-networking-fix: command: "docker run –rm -it –net=host [image-name]:[version] bash -il"