预配置的 Docker 容器 (Amazon Linux AMI) - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

预配置的 Docker 容器 (Amazon Linux AMI)

注意

2022 年 7 月 18 日,Elastic Beanstalk 将基于 Amazon Linux AMI(AL1)的所有平台分支的状态设置为已停用有关迁移到当前且完全受支持的 Amazon Linux 2023 平台分支的更多信息,请参阅 将 Elastic Beanstalk Linux 应用程序迁移到 Amazon Linux 2023 或 Amazon Linux 2

Amazon Linux AMI (AL1) 上运行的预配置 Docker GlassFish 平台分支不再受支持。要将 GlassFish 应用程序迁移到受支持的 Amazon Linux 2023 平台,请将 GlassFish 和您的应用程序代码部署到 Amazon Linux 2023 Docker 映像。有关更多信息,请参阅以下主题:将 GlassFish 应用程序部署到 Docker 平台:迁移到 Amazon Linux 2023 的路径

本部分介绍如何在本地开发示例应用程序,然后使用预配置的 Docker 容器将应用程序部署到 Elastic Beanstalk。

设置本地开发环境

对于本演练,我们使用 GlassFish 示例应用程序。

设置环境
  1. 为示例应用程序创建新文件夹。

    ~$ mkdir eb-preconf-example ~$ cd eb-preconf-example
  2. 将示例应用程序代码下载到新文件夹。

    ~$ wget https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-v1_cn.zip ~$ unzip docker-glassfish-v1_cn.zip ~$ rm docker-glassfish-v1_cn.zip

在本地开发和测试

开发示例 GlassFish 应用程序
  1. Dockerfile 添加到应用程序的根目录文件夹。在该文件中,指定要用于运行本地预配置 Docker 容器的 Amazon Elastic Beanstalk Docker 基础映像。稍后,您将应用程序部署到 Elastic Beanstalk 预配置的 Docker GlassFish 平台版本。选择此平台版本使用的 Docker 基本映像。要了解此平台版本的当前 Docker 镜像的更多信息,请参阅 Amazon Elastic Beanstalk 平台指南中的 Amazon Elastic Beanstalk 支持的平台页面的预配置 Docker 部分。

    例 ~/Eb-preconf-example/Dockerfile
    # For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1

    有关使用 Dockerfile 的更多信息,请参阅Docker 配置

  2. 构建 Docker 映像。

    ~/eb-preconf-example$ docker build -t my-app-image .
  3. 从该映像运行 Docker 容器。

    注意

    必须包含 -p 标记才能将容器中的端口 8080 映射到 localhost 端口 3000。Elastic Beanstalk Docker 容器始终在容器上的端口 8080 上公开应用程序。-it 标志将映像作为交互式进程运行。当容器存在时,--rm 标志将清理容器文件系统。您可以选择包含 -d 标志以将映像作为守护程序运行。

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. 要查看示例应用程序,请将以下 URL 键入您的 Web 浏览器。

    http://localhost:3000
    
                Web 浏览器中显示的 GlassFish 示例应用程序

部署到 Elastic Beanstalk

在测试应用程序后,可随时将其部署到 Elastic Beanstalk。

将应用程序部署到 Elastic Beanstalk
  1. 在应用程序的根文件夹中,将 Dockerfile 重命名为 Dockerfile.local。Elastic Beanstalk 若要使用 Dockerfile,则必须执行此步骤,该文件中包含关于 Elastic Beanstalk 在 Elastic Beanstalk 环境中的每个 Amazon EC2 实例上构建自定义 Docker 映像的正确说明。

    注意

    如果您的 Dockerfile 包含修改平台版本的基础 Docker 映像的指令,则无需执行此步骤。如果您的 Dockerfile 仅包含用来指定从中构建容器的基本映像的 Dockerfile 行,则完全无需使用 FROM。在这种情况下,Dockerfile 是冗余的。

  2. 创建应用程序源包。

    ~/eb-preconf-example$ zip myapp.zip -r *
  3. 使用下面的预配置链接打开 Elastic Beanstalk 控制台:console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced

  4. 对于 Platform (平台),在 Preconfigured – Docker (预配置 – Docker) 下,选择 Glassfish

  5. 对于 Application code (应用程序节点),选择 Upload your code (上传您的节点),然后选择 Upload (上传)

  6. 选择 Local file (本地文件),再选择 Browse (浏览),然后打开您刚刚创建的应用程序源包。

  7. 请选择 Upload(上传)。

  8. 选择复查并启动

  9. 查看可用设置并选择 Create app (创建应用程序)

  10. 创建环境后,您可以查看已部署的应用程序。选择控制台控制面板顶部显示的环境 URL。