从 Docker 容器部署 Elastic Beanstalk 应用程序 - AWS Elastic Beanstalk

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 Docker 容器部署 Elastic Beanstalk 应用程序

Elastic Beanstalk 支持从 Docker 容器部署 Web 应用程序。使用 Docker 容器,您可以定义自己的运行时环境。还可以选择自己的平台、编程语言以及其他平台通常不支持的任何应用程序依赖项,例如程序包管理器或工具。Docker 容器具有独立性且包含您的 Web 应用程序运行所需的所有配置信息和软件。在 Elastic Beanstalk 控制台中定义的所有环境变量都会传递到容器。

本章中的主题假设您对 Elastic Beanstalk 环境有所了解。如果您以前未使用过 Elastic Beanstalk,请尝试使用入门教程以了解基本知识。本章还假定您对 Docker 及其工作原理有了基本的了解。有关更多信息,请参阅 Docker 网站上的 Docker 概览

Docker 平台分支

Elastic Beanstalk Docker 平台支持以下平台分支:

运行 Amazon Linux 2 的 Docker运行 AL2023 的 Docker

Elastic Beanstalk 将 Docker 容器和源代码部署到 EC2 实例并对其进行管理。这些平台分支提供多容器支持。您可以利用 Docker Compose 工具来简化应用程序配置、测试和部署。有关此平台分支的更多信息,请参阅 使用 Docker 平台分支

在 Amazon Linux 2 上运行的 ECS在 AL2023 上运行的 ECS

我们为需要一个从已停用的平台分支 Amazon Linux AMI 上运行的多容器 Docker 迁移到 AL2023/AL2 的路径的客户提供此分支。最新的平台分支支持已停用平台分支的所有功能。源代码无需更改。有关更多信息,请参阅 将在 Amazon Linux 上运行的多容器 Docker 迁移到 Amazon Linux 2023 上的 ECS。如果您没有在基于 ECS 的平台分支上运行 Elastic Beanstalk 环境,则建议您使用该平台分支,即在 64 位 AL2023 上运行的 Docker。这提供了一种更简单的方法,需要的资源也更少。

此平台分支使用 Amazon ECS 将多个 Docker 容器协调部署到 Elastic Beanstalk 环境中的 Amazon ECS 集群。ECS 集群包含托管 Docker 容器的 EC2 实例。为了完成这种部署编排,Elastic Beanstalk 创建了 ECS 任务定义,其中还包括容器定义。环境中的每个实例都运行相同的容器组,如 Dockerrun.aws.jsonv2 文件所定义。有关更多信息,请参阅使用 Amazon ECS 平台分支

在 Amazon Linux AMI(AL1)上运行的已停用平台分支

2022 年 7 月 18 日,Elastic Beanstalk 将基于 Amazon Linux AMI(AL1)的所有平台分支的状态设置为已停用展开以下各节,详细了解每个已停用的平台分支及其向 Amazon Linux 2 或 Amazon Linux 2023(推荐)上运行的最新平台分支的迁移路径。

此平台分支可以部署 Docker 映像,如 Dockerfile 或 Dockerrun.aws.json v1 定义所述。此平台分支对于每个实例只运行一个容器。它的后续平台分支在 64 位 AL2023 上运行的 Docker在 64 位 Amazon Linux 2 上运行的 Docker 对于每个实例支持多个 Docker 容器。

我们建议您创建环境使用较新且受支持的平台分支在 64 位 AL2023 上运行的 Docker。然后,您可以将应用程序迁移到新创建的环境。有关创建这些环境的更多信息,请参阅 使用 Docker 平台分支。有关迁移的更多信息,请参阅 将 Elastic Beanstalk Linux 应用程序迁移到 Amazon Linux 2023 或 Amazon Linux 2

此平台分支使用 Amazon ECS 将多个 Docker 容器协调部署到 Elastic Beanstalk 环境中的 Amazon ECS 集群。如果您目前正在使用这个已停用的平台分支,我们建议您迁移至最新的平台分支:在 Amazon Linux 2023 上运行的 ECS。最新的平台分支支持此已停产平台分支的所有功能。源代码无需更改。有关更多信息,请参阅将在 Amazon Linux 上运行的多容器 Docker 迁移到 Amazon Linux 2023 上的 ECS

除了之前提到的 Docker 平台之外,还有一个在 Amazon Linux AMI 操作系统(AL1)上运行的预配置 Docker GlassFish 平台分支。

该平台分支已被平台分支在 64 位 AL2023 上运行的 Docker在 64 位 Amazon Linux 2 上运行的 Docker 所取代。有关更多信息,请参阅 将 GlassFish 应用程序部署到 Docker 平台