Tag: 亚马逊 ECS

是否有可能直接从AWS lambda中调用docker run

我有一个我已经dockerized Java独立的应用程序。 每次将一个对象放到S3存储中,我都想运行这个docker。 在途中是通过AWS批处理,我试图避免。 有一个直接和简单的方法来调用从lambda运行docker运行?

如何理解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,更换新实例后的数据如何?

从Docker容器获取控制台输出

我build立一个图像与python instaled和一个python应用程序。 我的Python应用程序是一个世界,只是在屏幕上打印“Hello World”。 Dockerfile: FROM python:2-onbuild CMD ["python", "./helloworld.py"] 在控制台我执行: docker run xxx/zzz 我可以看到Hello World输出。 现在我尝试使用ECS的任务执行相同的应用程序。 我已经把它拉到Docker Hub。 我怎样才能看到输出你好世界? 反正哟看到我的容器正确运行?

如何向AWS ECS任务定义提供环境variables?

在ECS的任务定义中,我提供的环境variables如下: 键为HOST_NAME,价值为something.cloud.com 在我的本地我使用这个docker运行命令,我可以通过我的envvariables,但通过任务定义variables不被传递给容器。 这个docker run命令在本地工作,如何在AWS ECS的任务定义中进行设置: docker运行-e HOST_NAME = something.cloud.com sid:最新

AWS Docker部署

我有一个自定义的docker镜像上传到ECS。 我打开了权限来尝试解决这个问题(一旦我能得到这个工作,我将再次locking它)。 我试图将docker映像部署到弹性beanstalk。 我有一个docker启用弹性beanstalk环境设置。 根据AWS文档,如果我从AWS内部拉取图像,则不需要传入证书。 所以我上传我的Dockerrun.aws.json文件并尝试安装它。 它失败,错误: 命令在实例上失败。 返回代码:1输出:无法使用ECR对“us-east-1”中的registry“434875166128”进行身份validation。 挂钩/opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh失败。 有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log。 /var/log/eb-activity.log信息没有任何用处。 这是我的Dockerrun.aws.json文件: { "AWSEBDockerrunVersion": "1", "Image": { "Name": "{id000xxxx}.dkr.ecr.us-east-1.amazonaws.com/my-repo:1.0.0", "Update": "true" }, "Ports": [ { "ContainerPort": "4000" } ], "Logging": "/var/log/app-name" } 我也尝试在S3中添加dockercf.json文件的authentication。 这对我也不起作用。 请注意,我正在使用商家帐户而不是个人帐户,因此可能会有一些未知的差异。 谢谢! 更新:我的用户现在也有完整的权限,所以不应该有任何权限明智的方式。

kubernetes和GKE有什么区别?

我知道GKE是由下面的kubernetes驱动的。 但是,我似乎还没有得到的是GKE和K8s在分层中的哪个部分是由G8所关注的? 两者的主要目的都是pipe理集群中的容器。 基本上,我正在寻找一个比较简单的解释。

如何从外部机器ssh到一个ec2 ubuntu主机上的docker集装箱

我有docker恶魔在Ubuntu的ec2主机上运行。 我可以在这个ubuntu ec2主机上设置一个sshd conatainer,并且能够从docker主机ssh进入.ie ubuntu@ip-172-16-27-205:~/docker-work$ sudo docker run -d -P –name ssh-enabled ssh-enabled bb7f535124b3df403ae97da770fe2e4a4969a7ecddfb5d546aaddfe00e40374d ubuntu@ip-172-16-27-205:~/docker-work$ sudo docker port ssh-enabled 22/tcp -> 0.0.0.0:32768 ubuntu@ip-172-16-27-205:~/docker-work$ ssh root@127.0.0.1 -p 32768 The authenticity of host '[127.0.0.1]:32768 ([127.0.0.1]:32768)' can't be established. ECDSA key fingerprint is e6:74:aa:52:8e:3d:19:7a:92:da:85:d4:b9:f9:ed:f1. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[127.0.0.1]:32768' […]

我如何将自动调节组连接到我的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或者完成这个最简单的方法是什么?