Tag: amazon web services

容器定义中带有java命令的AWS EC2任务/服务容器

我们需要在AWS EC2上部署Docker容器,Hawkbit和RabbitMQ将在容器上运行。 在设置我们的任务位置时,我们试图把java命令放在容器定义的命令部分。 唉,当我们启动服务时,容器停止,因为AWS显然不执行java命令。 有没有办法让容器的Java命令没有SSH'ing到容器?

AWS ElasticBeanstalk Multidocker未使用正确的Cmd创buildECS任务

我使用multidocker选项在AWS ElasticBeanstalk上部署节点应用程序。 该应用程序似乎部署成功,但是,我注意到,应用程序(在我的docker)实际上并没有运行。 当我docker inspect <container_id>正在运行的容器docker inspect <container_id> ,看到"Cmd": null 。 如果我检查由beanstalk创build的ECS任务定义,我也看到"command": null" / 但是 ,如果我手动运行容器(通过docker run -d myimage:latest ),我看到"Cmd": ["node", "server.js"]和应用程序正确服务。 这是我的Dockerfile中包含的正确的CMD 。 我的ECS任务定义如何正确读取我的泊坞窗图像中的CMD ? 我想添加一个命令到我的Dockerrun.aws.json ? 我找不到任何文件。 Dockerrun.aws.json : { "AWSEBDockerrunVersion": 2, "volumes": [ { "name": "node-app", "host": { "sourcePath": "/var/app/current/node-app" } } ], "containerDefinitions": [ { "name": "node-app", "image": "1234565.dkr.ecr.us-east-1.amazonaws.com/my-node-app:testing", "essential": true, […]

具有单个容器泊坞窗的AWS Elastic Beanstalk:在Dockerfile.aws.json中logging参数

我很难理解日志logging选项如何在Dockerfile AWSconfiguration中工作。 根据文件,我希望/以为Dockerfile.aws.json下面: { "AWSEBDockerrunVersion": "1", "Ports": [ { "ContainerPort": "1234" } ], "Logging": "/var/log/applogs" } 我会将容器中/var/log/appslogs中logging的所有内容都放到EC2实例的/var/log/eb-docker/containers/eb-current-app/文件夹中。 但这种情况并非如此。 我究竟做错了什么 ?

Elastic Beanstalk运行一周后CPU负载很高

我正在AWS Beanstalk上运行单实例工作器。 这是一个单容器的Docker,每个工作日运行一次。 大多数情况下,这些进程同步S3中的大量小文件并分析这些文件。 该设置运行良好大约一个星期,然后CPU负载开始时间线性增长,如在此屏幕截图。 CPU负载保持在相当的水平,放慢我的预定进程。 同时,我在容器内运行的顶级资源跟踪( 特权的 Docker模式启用它): echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args –sort=pcpu | cut -d" " -f1-5 | tail 几乎没有CPU负载(仅在我的日常过程运行的时间内发生变化,看起来准确地反映了那些时间的系统负载)。 这个“背景”系统负载的来源是什么? 想知道是否有人看到一些类似的行为,并且/或者可以从正在运行的容器内部build议额外的诊断。 到目前为止,我一直在重新启动设置每周删除“背景”的负载,但这是次优,因为每次重新启动后第一次运行必须从S3收集超过100万的小文件(而随后的每日运行只添加每天几千个文件)。

获取“此应用程序已经运行”,但找不到RUNNING_PIT

我有一个在AWS EB的docker上运行的应用程序。 我重build了环境,现在我正在This application is already running (Or delete /var/run file). 错误。 但是,我找不到RUNNING_PID。 我检查了根,以及/ opt / docker /。 我试过find . -name RUNNINGPID find . -name RUNNINGPID 。 我添加了行到我的conf将PID文件放在/ var / run /中,但我无法摆脱这个当前的一个,因为我找不到它! 有人可以帮忙吗? 这个东西的一个新手的位。

对于Web应用程序,为模板和api服务器分配两个容器是否有意义?

一个聪明但没有经验的程序员以如下方式向我们的服务介绍了dev-ops: 运行包含前端构build的html模板的服务器通过Docker容器部署到ECS,然后部署到启用了负载平衡的Elastic Beanstalk。 前端构build依赖的api服务器也通过启用了负载平衡的Docker + Elastic Beanstalk部署到ECS。 扮演将SSL和代理应用于模板服务器和api服务器的angular色的ec2实例(nginx +)。 这是入口点,但负载平衡器未连接。 我批准了分离前端和api环境的举措,这允许我们的开发人员在不影响另一个的情况下提交一个代码。 然而,AWS的这种安排,即使在技术上是function性的,似乎也是有缺陷的。 我听说Application Load Balancer可以兼顾SSL和代理服务器,但是我不知道如何在我们的服务涉及两个单独的容器的情况下应用它。 我的问题是: 使用Docker,ECS,Elastic Beanstalk和Application Load Balancer部署前端和api服务器的最痛苦的方式是什么? 是否还有其他CI /自动化工具可以推荐您尽可能无忧无虑地进行部署? 谢谢!

我怎样才能从docker集线器匿名拉,而仍然有权访问私人registry?

我有以下config.json { "credsStore": "ecr-login", "auths": { "****.us-east-1.amazonaws.com": {} } } ecr-login是需要时抓取新ECR令牌的凭证助手。 当我运行docker pull centos 。 要求我login: docker pull centos使用默认的标签:latest 请先login:使用您的Docker ID进行login,以便从Docker Hub中推送和拖出图像。 如果您没有Docker ID,请转到https://hub.docker.com创build一个。 用户名(AWS): 当我删除configuration,没有交互式提示出现,图像被拉。 有什么我需要添加到config.json以便它允许我继续匿名使用docker中心/没有提示?

Docker群集和发布的端口不可用

我有3个节点,经理和工作人员在谷歌云和工作人员在亚马逊aws,在我的群和相同的覆盖networking。 当在谷歌引擎上运行服务时,似乎都可以正常工作,发布的端口响应正常,但是当在aws上时,服务无法连接。 如果工作人员不够用,那么在Google上重新启动时就会再次工作。 想法?

Docker Exec Cronjobs填充Ec2实例磁盘空间,为什么?

我在一个Docker容器内的ec2实例上运行了大约100个每日cron任务。 大部分任务都是使用Luigi从某处拉取数据并将其上传到Redshift。 示例命令是: */30 * * * * docker exec -i container_name bash -c "cd /foo/bar && python run_script.py" >/home/ec2-user/logs/run_script 2>&1 我遇到的问题是ec2实例正在填满。 具体这个文件夹: 4108372 /var/lib/docker/devicemapper/devicemapper 4108772 /var/lib/docker/devicemapper 4113764 /var/lib/docker 4140796 /var/lib 4386484 /var 5486896 / 我现在有三个假设如何处理这个问题: 从默认的docker devicemapper loop-lvm切换到“production” direct-lvm 。 ( 来源 )。 不知道这是否能解决潜在的问题。 不要从ec2调用exec来运行容器内的任务,而是在Docker容器中安装crontab。 这个想法是恒定的docker exec命令正在产生一些输出,填补了实例。 放弃解决根本问题,完全自动部署,使我可以毫不费力地擦拭docker集装箱清洁每隔几天,并开始新鲜。 有没有人经历过这个? 对发生什么或在哪里看的任何想法? 先谢谢你。

从Docker容器中获取映射的端口

我正在使用Cloudfront和ECS在AWS中运行任务。 我使用以下命令将我的任务映射到随机主机端口: PortMappings: – HostPort: 0 ContainerPort: 8080 我需要知道容器内主机的DN和任务被映射到的随机端口。 我怎样才能做到这一点?