使用 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

云原生之Docker实战使用docker部署个人导航页webstack

4.Docker Compose 部署 Nexus

部署Nexus[docker-compose]

docker-compose部署Estack

跟我一起学docker(12)--docker compose的使用