Tag: 亚马逊 ec2

将Docker容器部署到AWS时运行数据库迁移命令

请多多包涵。 对Docker来说很新颖。 我使用CodeDeploy将Docker容器(分离)部署到AWS EC2registry。 在部署时,在设置一些环境variables之后运行以下命令: exec docker run -d ${PORTS} -v cache-${CACHE_VOLUME} –env-file $(dirname $0)/docker.env –tty "${IMAGE}:${TAG}" 容器在EC2容器服务中运行定位和标记的图像。 到目前为止没有问题。 由于这是一个PHP应用程序(特别是一个Symfony2应用程序),我通常需要发出以下命令来执行部署的数据库迁移: php app/console doctrine:migrations:migrate –no-interaction 现在,是否有任何运行此命令在“docker运行…”,而保持容器运行,还是我需要运行另一个容器专门为这个命令? 非常感谢!

如何在Amazon中安装Amazon ECS容器代理? (ECS-INIT)

我有一个与Debian的杰西ec2实例,当我这样做的命令: apt-get install ecs-init 我收到一个错误包未find.. 所以我需要在Debian上添加新的depo 它不适合我: http : //docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html 谢谢。 亚马逊ECS-INIT

如何从一个私人Dockerhub回购自动化docker运行?

我有一个运行Docker的EC2服务器,我想将以下内容添加到User Data以便在服务器启动时,我的私有Dockerhub映像将被拉出/运行,如下所示: #!/bin/bash sudo docker run -p 3333:3333 -d –name Hello myusername/hello 但我不确定如何去authentication,以获得访问私人回购myusername/hello 。 使用Github创build并上传部署密钥,Dockerhub是否提供了类似的部署密钥选项?

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通过用户数据或不自动或如果我做错了什么。 请帮我解决这个问题。

DEIS没有公共IP

按照这里的说明: https://github.com/deis/deis/tree/master/contrib/ec2 将Deis部署到EC2到VPC中,CloudForms堆栈启动并创build实例,但是实例没有公有IP,启动实例的子网确实启用了自动分配公共IP。 所以,没有公共IP,我不知道如何连接到与舰队的实例。 任何人有什么想法,我失踪了?

从Docker容器内访问RDS没有通过安全组?

我试图运行一个Web服务器,在docker集装箱内使用EC2的RDS数据库。 我已经设置了安全组,所以EC2主机的angular色被允许访问RDS,如果我尝试从主机直接访问它,一切正常。 但是,当我在主机上运行一个简单的容器并尝试访问RDS时,它会被阻塞,就好像安全组没有让它通过一样。 经过一系列的试验和错误,似乎容器的请求并不是来自EC2主机,所以防火墙说没有。 我可以在短期内通过在docker容器上设置–net = host来解决这个问题,但是这会破坏很多伟大的dockerfunction,比如能够映射端口的function(例如,现在我需要确保容器的每个实例用手在不同的端口上侦听)。 有没有人find解决办法? 如果您实际使用任何AWS资源,在AWS中运行容器似乎是一个相当大的限制。

多Docker Elastic Beanstalk:上传.ebextensions

是否可以部署到多Docker Elastic Beanstalk的.ebextensions? 我使用Dockerrun.aws.jsonfile upload我的应用程序,一切正常。 我想要设置日志stream到Cloudwatch。 我应该使用.ebextensions来做到这一点。 但是,如果我只在Web浏览器(AWS控制台)上传Dockerrun.aws.json(不是.zip或.war),我不知道如何附加.eexxtensions。 如何将.ebxetensions部署到多Docker Elastic Beanstalk? …还是有什么其他的方式来设置什么日志应该stream到Cloudwatch日志?

从Docker容器中检测AWS主机环境

从Docker容器中,我如何检测到我在AWS环境中运行? 我希望相同的容器可以select性地在AWS内启动IF时运行一些AWS命令,但是如果在本地环境中运行,则跳过这些命令。 目前,我认为简单的方法是在AWS中运行时设置一个环境variables。 有另一种方法吗?

在Docker容器上运行hadoop集群

我想运行一个多节点的hadoop集群,其中每个节点都位于不同主机上的docker容器中。 这个图像 – https://github.com/sequenceiq/hadoop-docker很好地启动hadoop在伪分布式模式,什么是最简单的方法来修改这个每个节点在一个单独的ec2主机不同的容器?

AWS BeansTalk公开Docker端口

我正在尝试将一个Docker Gogs映像的实例部署到AWS。 环境和应用程序启动正常,但唯一可见的端口是80,而我的Docker文件中有“EXPOSE 3000”。 我将下面的Dockerrun.aws.json添加到了我的git Dockerrun.aws.json ,并部署到AWS,但是该端口仍然不可见。 { "AWSEBDockerrunVersion": "1", "Ports": [ { "ContainerPort": "3000" } ] }