使用 docker compose 部署超过 4 个容器时,Elastic beanstalk 部署失败
Posted
技术标签:
【中文标题】使用 docker compose 部署超过 4 个容器时,Elastic beanstalk 部署失败【英文标题】:Elastic beanstalk deploy fails when deploying more than 4 containers using docker compose 【发布时间】:2021-08-30 19:27:47 【问题描述】:我在弹性豆茎上遇到了这个奇怪的问题。我正在使用 docker compose 在同一个弹性 beanstalk 实例上运行多个 docker 容器。
如果我运行 4 个 docker 容器,一切正常。但如果我将其设为 5,则部署失败并出现错误 Instance deployment failed to download the Docker image. The deployment failed
。
如果我检查 eb-engine.log。它重试docker pull
命令并失败并出现错误。
这真是一个奇怪的错误。 bcs 所有 docker 图像均有效且已正确标记。它只是我在 docker compose 文件中添加的服务数量。如果 number 大于 4,则部署失败
我的问题是, 可以使用 docker compose 运行的 docker 服务是否有任何限制?或者弹性beantalk中是否有任何超时来拉取图像?
【问题讨论】:
您的实例上可能没有更多空间来运行 5 contains 了?你检查过更大的吗? 是的,我将卷大小增加到 16GB,默认为 8GB,但仍然存在同样的问题。 您使用的是什么实例? t2.微?除非您自己手动扩展分区,否则更改卷大小没有多大作用。 好吧,我刚刚将 t2.micro 更改为 t2.large 并且它有效。真的很奇怪,是内存和cpu的东西吗? 【参考方案1】:基于 cmets。
问题是使用了t2.micro
实例。该实例只有 1 个 vCPu 和 1GB 内存。这还不足以运行 5 个 docker 容器。将实例类型更改为 t2.large
,具有 8GB 内存和 2 个 vCPU解决了问题。
docker-compose 允许指定 cpu 和内存 limits。也许您可以设置它们以控制您的容器资源需求。
【讨论】:
以上是关于使用 docker compose 部署超过 4 个容器时,Elastic beanstalk 部署失败的主要内容,如果未能解决你的问题,请参考以下文章
Centos7.4下用Docker-Compose部署WordPress