How to use multi container docker in Elastic beanstalk using Amazon linux 2?

问题描述 投票:0回答:3

目前,亚马逊弃用了

Multi-container Docker running on 64bit Amazon Linux
。需要迁移到
Docker running on 64bit Amazon Linux 2
。在第一个版本中,我们使用
Dockerrun.aws.json v2
来管理多容器 docker。在最新版本(
Docker running on 64bit Amazon Linux 2
)中,我们需要使用
Dockerrun.aws.json v3
docker-compose
。但是没有可用的示例或博客。我能得到工作样品吗?。

amazon-web-services docker amazon-elastic-beanstalk amazon-elb dockerrun.aws.json
3个回答
9
投票

关于在 64 位 Amazon Linux 2 平台上运行的 Elastic Beanstalk 和 Docker。

我也很纠结,终于水落石出了。让我感到困惑的是,文档使您似乎可以选择在 EB 应用程序包中使用 Dockerrun.aws.json (v3) 或 docker-compose.yml。

然后你去找 Dockerrun.aws.json (v3) 上的文档,到处都找不到。

原因是,你别无选择。如果你想运行多个容器,你必须在你的应用程序包中包含一个 docker-compose.yml。 Dockerrun.aws.json (v3) 唯一允许您做的就是将 s3 存储桶和密钥配置到容器存储库身份验证文件“.dockercfg”的位置

这本质上是“Dockerrun.aws.json (v3)”的文档,它不支持任何类似于“Dockerrun.aws.json (v2)

{
  "AWSEBDockerrunVersion": "3",
  "Authentication": {
    "bucket": "DOC-EXAMPLE-BUCKET",
    "key": "mydockercfg"
  }
}

包含一个 docker-compose.yml,只有当 docker 镜像位于私有存储库中时,您才需要 dockerrun.aws.json (v3)。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker-configuration.html


1
投票

根据 AWS Docs,在 Amazon Linux 上运行的多容器 Docker 可以迁移到 Amazon Linux 2 上的 ECS

此选项似乎比使用 Elastic Beanstalk 控制台更容易通过 CLI 应用,因为它需要 1 个命令:

aws elasticbeanstalk update-environment \
--environment-name ${my-env} \
--solution-stack-name "64bit Amazon Linux 2 ${version} running ECS" \
--region ${my-region}

我建议你先克隆你想升级的环境,将上面提到的命令应用到这个复制的环境并测试它,如果一切正常,那么你可以使用 blue/green deployment 来避免停机.

我希望这对某人有帮助!


0
投票

现在(2023 年),如果您仍然需要从

Multi-container Docker running on 64bit Amazon
平台迁移,您可以选择创建一个
ECS running on 64bit Amazon Linux 2/3.2.5
环境,它将支持与多容器相同的
Dockerrun.aws.json
(v2) 文件:Migrating Multi -在 Amazon Linux 上运行的容器 Docker 到 Amazon Linux 2 上的 ECS.

或者你也可以按照Osain的回复尝试迁移

© www.soinside.com 2019 - 2024. All rights reserved.