Tag: 亚马逊 ec2

以AWS EC2上的ec2用户身份运行Docker容器

我正在AWS EC2上运行docker,并希望以用户ec2-user身份启动mkdir afolder容器,以便使用命令mkdir afolder在容器内创build的任何文件夹都将归ec2-user 。 我将user: ec2-user添加到docker-compose.yml但是docker-compose.yml拒绝启动并给出错误: Cannot start service web: linux spec user: unable to find user ec2-user: no matching entries in passwd file 。 这是因为容器没有用户ec2-user 。 我不想在构build时在Dockerfile中创buildec2-user ,这意味着在部署到差异服务器时,必须修改Dockerfile。 有什么更好的方法来解决这个问题? PS:我的Dockerfile和docker-compose.yml设置正确,所以在运行docker docker-compose up -d容器可以像预期的那样启动。 我的Dockerfile FROM codemix/yii2-base:2.0.12-apache #FROM codemix/yii2-base:2.0.11.2-php7-fpm #FROM codemix/yii2-base:2.0.11.2-hhvm # Copy the Yii2 specific config apache config COPY apache2.conf /etc/apache2/apache2.conf # PHP […]

EC2上的Docker无法连接到S3

我想提高部署的安全性,将密钥存储在安全的地方。 所以我遵循本教程: 如何使用Amazon S3和Dockerpipe理基于Amazon EC2容器服务的应用程序的秘密但是,如果没有CloudWatch模板(我已经有了VPC,集群和其他实例),我正在使用自己的项目(A与任务定义中的秘密一起工作的Flask应用程序) 我设置了S3存储桶,VPC端点,一切正常。 但是当我的docker集装箱启动时,我得到一个错误: download failed: s3://[my-bucket]/[my-secrets].txt to – An error occurred (403) when calling the HeadObject operation: Forbidden 当入口点脚本运行命令时,基本上会发生这种情况 aws s3 cp s3://${SECRETS_BUCKET_NAME}/secrets.txt – 注意:我在任务定义中定义了SECRETS_BUCKET_NAME,以及不需要保密的其他variables。 首先,我认为我的实例没有正确的angular色,所以出于debugging目的,我附加了它的pipe理员访问策略,但没有成功。 其次我读Docker容器共享主机(EC2实例)的凭据,所以我直接安装在aws-cli包的实例上,并为具有AdministratorAccess策略的用户设置凭据。 现在我可以手动运行时,在我的实例上login命令 aws s3 cp s3://${SECRETS_BUCKET_NAME}/secrets.txt – 它工作正常,但我的容器仍然得到了403错误。 我的EC2实例是一个amzn-ami-2017.03.c-amazon-ecs-optimized图像(奇怪的是,不包括aws-cli) 如果有人知道我做错了什么…

通过GitLabpipe道将Docker容器部署到EC2容器服务时出错

我正在尝试使用GitLabpipe道将Docker容器部署到EC2容器服务中。 我已经在AWS中创build了集群,并且还运行了2个实例。 问题是,一旦命令 ecs-cli compose –file ./Documents/Development/workillence/docker-compose-test.yml service up –container-name testContainer –container-port 8080 #–role arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceRole –target-group-arn arn:aws:elasticloadbalancing:us-east-2:084622260700:targetgroup/TestTG/af0fbec5b9cc869f 被执行我收到以下错误: WARN[0000] Skipping unsupported YAML option for service… option name=build service name=testContainer ERRO[0001] Error registering task definition error="ClientException: Container.image should not be null or empty.\n\tstatus code: 400, request id: 27277917-8d8e-11e7-8cb2-8d5ad96f4568" family=ecscompose-workillence ERRO[0001] Create task definition failed error="ClientException: Container.image […]

我怎样才能使用docker集装箱在EC2实例(Ubuntu 16.04)中调用我的API

我打电话给我的API与以下港口: http:// IPv4公共IP:8000 /login 我通过docker把代码组合起来。 这将会给我所有的项目configuration与PHP 7.1.8 php artisan serve 命令将在127.0.0.1:8000这个端口上成功启动。 但我使用AWS EC2(Ubuntu 16.04)实例。 所以,我在邮递员调用API“IPv4公共IP:8000 /login”。 但它给我一个错误: 无法得到任何回应 连接到IPv4公用IP:8000 /login时出现错误

AWS EC2(RHEL)上的Docker安装不起作用

我正在尝试在具有RHEL 7.3的AWS EC2实例上安装Docker。 我得到 – ec2-user @ ip-172-31-14-68:〜$ sudo yum install -y docker加载的插件:amazon-id,rhui-lb,search-disabled-repos没有包装docker可用。 错误:无事可做 然后我在网站上查找,发现RHEL不支持Docker Community Edition。 https://docs.docker.com/engine/installation/linux/docker-ee/rhel/ 它支持什么操作系统? Ubuntu,CentOS? 谢谢

SSH的AWS EC2实例与Docker(Ubuntu 14.04)通过IP端口22获取连接closures

使用Docker(Ubuntu AMI)创build一个新的AWS EC2实例后,一个ssh到Conenctionclosures失败。 ssh -i ~/cmec2-1.pem ubuntu@ec2-54-183-133-180.us-west-1.compute.amazonaws.com Connection closed by 54.183.133.180 port 22 我停下来,并开始实例2次,但同样的错误。 任何想法为什么发生这种情况? SSH在入站规则中

Docker容器不在EC2集群的EC2实例部分运行

我正试图自动化我的项目的部署过程。 环境看起来像: 我们使用GitLab来存储我们的代码 我们在GitLab中执行一个CD / CIpipe道来构buildDocker镜像并将其存储在Amazon存储库中 一旦构build阶段完成,Docker必须在部署阶段运行两个实例中的第一个实例上的最新映像,并在成功执行后在第二个实例上扩展容器。 这是.gutlab-ci.yml文件的样子: image: docker:latest services: – docker:dind stages: – build – deploy variables: DOCKER_DRIVER: overlay2 testBuild: stage: build script: – docker login -u AWS -p <password> <link to Amazons' repo> – docker build -t <repo/image:latest> app/ – docker push <repo/image:latest> testDeploy: stage: deploy variables: AWS_DEFAULT_REGION: "us-east-2" AWS_ACCESS_KEY_ID: "access key" […]

用Docker启动EC2,运行脚本并closures

嗨Stackoverflow社区,我有一个关于使用Docker与AWS EC2的问题。 我对EC2感到满意,但是对于Docker来说,这是非常新的。 我在Python 3.6中编码,并希望自动化以下过程: 1:使用Docker启动一个EC2实例(存储在ECR中的Docker镜像) 2:运行一次性过程,并以CSV格式返回结果(我们称之为“T”) 3:在AWS S3中存储“T” 4:closuresEC2 使用EC2实例的原因是因为这个过程的计算量很大,对于我的本地计算机来说是不可行的。 Docker的原因是为了确保整个团队和CI设施(目前使用circle.ci)的开发环境相同。 我明白,与AWS的交互主要可以使用Boto3完成。 我一直在阅读AWS自己的ECS,而且我有一种感觉,它更倾向于使用Docker部署Web应用程序,而不是运行一次性的过程。 但是,当我searchEC2 + Docker的时候,没有任何其他的ECS出现了。 我也在AWS中完成了这个教程,但没有多大帮助。 我也考虑过使用shell脚本运行EC2(例如下载docker,拉图像,build造容器等),但是感觉有点不好意思? 所以我这里的问题是: 1:在他的情况下,ECS真的是最合适的解决scheme吗? (或换句话说就是ECS为这种操作而devise的?) 2:如果有的话,是否有人使用ECSbuild立和运行一次性stream程? (我发现设置真的很混乱,尤其是使用的术语) 3:有什么其他的select(如果有的话)? 十分感谢你的帮助!

ECS使用Docker Hub进行身份validation

我在使用AWS EC2实例的docker hub中的私人回购进行身份validation时遇到问题。 AWS提供了关于如何设置的文档。 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html 我已经按照文档,仍然收到以下错误: 来自守护程序的错误响应:未find存储库用户/重新名称:不存在或不存取 我在/ etc / ecs目录下创build了一个ecs.config 我的ecs.config(注意:我已经删除了我的凭据) ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"username","password":"password","email":"fakeemail@gmail.com"}} 然后我停下来重新启动了ecs服务。 我仍然得到 来自守护程序的错误响应:未find存储库用户/重新名称:不存在或不存取 注意:我可以使用Dockerlogin从我的linux ec2实例手动login,然后从我的私人仓库中取出

如何在ECS上托pipenodejs应用程序?

Iam希望在ECS上托pipe一个nodejs应用程序。 在本地开发我使用ngrok揭露港口3000,它似乎工作得很好。 现在我想主持。 docker化是强制性的吗? 如果应用程序被docker化,将在amazon ecs上托pipe它的步骤是什么? 我也想知道,如果没有dockerizing,可以在ecs上托pipe。