本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 64 位 Amazon Linux 2 上运行的 ECS 平台分支发布之前,针对拥有基于在 64 位 Amazon Linux 上运行的多容器 Docker 平台分支的环境的客户,Elastic Beanstalk 提供了到 Amazon Linux 2 的备用迁移路径。本主题介绍了该迁移路径,并保留在本文档中,作为完成该迁移路径的任何客户的参考。
如果客户拥有基于在 64 位 Amazon Linux 上运行的多容器 Docker 平台分支的环境,我们现在建议迁移到在 64 位 Amazon Linux 2 上运行 ECS 平台分支。与备用迁移路径不同,此方法继续使用 Amazon ECS 来协调向 ECS 托管式 Docker 环境的容器部署。这方面允许采用更直接的方法。无需更改源代码,支持相同的 Dockerrun.aws.json
v2。有关更多信息,请参阅 将 Elastic Beanstalk 应用程序从 AL1 上的 ECS 托管多容器 Docker 迁移到 Amazon Linux 2023 上的 ECS。
您可以将在 Amazon Linux AMI 上的多容器 Docker 平台上运行的应用程序迁移到 Amazon Linux 2 Docker 平台。Amazon Linux AMI 上的多容器 Docker 平台要求您指定要作为容器运行的预构建应用程序映像。迁移后,您将不再有此限制,因为 Amazon Linux 2 Docker 平台还允许 Elastic Beanstalk 在部署期间构建容器映像。您的应用程序将继续在多容器环境中运行,并获得 Docker Compose 工具的额外优势。
Docker Compose 是定义和运行多容器 Docker 应用程序的工具。要了解有关 Docker Compose 以及如何安装它的更多信息,请参阅 Docker 网站 Docker Compose 概述
docker-compose.yml
文件
Docker Compose 工具使用 docker-compose.yml
文件配置您的应用程序服务。此文件将替换应用程序项目目录和应用程序源包中的 Dockerrun.aws.json v2
文件。您可以手动创建 docker-compose.yml
文件,此时您将发现这对引用您的 Dockerrun.aws.json v2
文件以获取大多数参数值很有帮助。
以下是同一应用程序的 docker-compose.yml
文件和相应 Dockerrun.aws.json v2
文件的示例。有关 docker-compose.yml
文件的更多信息,请参阅 Compose 文件参考Dockerrun.aws.json v2
文件的更多信息,请参阅Dockerrun.aws.json v2。
docker-compose.yml |
Dockerrun.aws.json v2 |
||
---|---|---|---|
|
|
其他迁移注意事项
Docker Amazon Linux 2 平台和多容器 Docker Amazon Linux AMI 平台以不同方式实现环境属性。这两个平台还有 Elastic Beanstalk 为其每个容器创建的不同日志目录。从 Amazon Linux AMI 多容器 Docker 平台迁移后,您需要了解这些不同的实现方式,以便在新 Amazon Linux 2 Docker 平台环境中使用。
领域 | Amazon Linux 2 上带 Docker Compose 的 Docker 平台 | Amazon Linux AMI 上的多容器 Docker 平台 |
---|---|---|
环境属性 |
为使容器能够访问环境属性,您必须在 |
Elastic Beanstalk 可以直接将环境属性传递给容器。在容器中运行的代码可以将这些属性作为环境变量访问,而无需任何其他配置。 |
日志目录 |
对于每个容器,Elastic Beanstalk 都会创建一个名为 |
对于每个容器,Elastic Beanstalk 都会创建一个名为 |
迁移步骤
迁移到 Amazon Linux 2 Docker 平台
-
根据应用程序的现有
docker-compose.yml
文件为应用程序创建Dockerrun.aws.json v2
文件。有关更多信息,请参阅上述 docker-compose.yml 文件部分。 -
在应用程序项目文件夹的根目录中,将
Dockerrun.aws.json v2
文件替换为刚刚创建的docker-compose.yml
文件。您的目录结构应如下所示。
~/myApplication |-- docker-compose.yml |-- .ebextensions |-- php-app |-- proxy
-
使用 eb init 命令配置本地目录以部署到 Elastic Beanstalk。
~/myApplication$
eb init -p docker
application-name
-
使用 eb create 命令创建环境并部署 Docker 映像。
~/myApplication$
eb create
environment-name
-
如果您的应用是 Web 应用程序,则在启动环境后,使用 eb open 命令在 Web 浏览器中查看它。
~/myApplication$
eb open
environment-name
-
您可以使用 eb status 命令显示新创建的环境的状态。
~/myApplication$
eb status
environment-name