

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

# 旧版平台
<a name="create_deploy_dockerpreconfig-legacy"></a>

本章列出了不再支持的与以前的 Docker 平台相关的内容。 AWS Elastic Beanstalk此处列出的主题将保留在本文档中，以供在这些功能或组件停用前使用过它们的任何客户参考。

**Topics**
+ [

# 从 Amazon Linux 上运行的多容器 Docker 迁移到 Amazon Linux 2 上运行的 Elastic Beanstalk Docker
](docker-multicontainer-migration.md)
+ [

# Elastic Beanstalk 上预配置的 Docker GlassFish 容器
](create_deploy_dockerpreconfig.md)

# 从 Amazon Linux 上运行的多容器 Docker 迁移到 Amazon Linux 2 上运行的 Elastic Beanstalk Docker
<a name="docker-multicontainer-migration"></a>

*在 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。有关更多信息，请参阅 [在亚马逊 Linux 2023 上将你的 Elastic Beanstalk 应用程序从 ECS 托管的多容器 Docker AL1 迁移到 ECS](migrate-to-ec2-AL2-platform.md)。

## 从 Amazon Linux 上的多容器 Docker 到 Docker Amazon Linux 2 平台分支的旧式迁移
<a name="docker-multicontainer-migration-to-docker-al2"></a>

您可以将在 [Amazon Linux AMI 上的多容器 Docker 平台](create_deploy_docker_ecs.md)上运行的应用程序迁移到 Amazon Linux 2 Docker 平台。Amazon Linux AMI 上的多容器 Docker 平台要求您指定要作为容器运行的预构建应用程序映像。迁移后，您将不再有此限制，因为 Amazon Linux 2 Docker 平台还允许 Elastic Beanstalk 在部署期间构建容器映像。您的应用程序将继续在多容器环境中运行，并获得 Docker Compose 工具的额外优势。





Docker Compose 是定义和运行多容器 Docker 应用程序的工具。要了解有关 Docker Compose 以及如何安装它的更多信息，请参阅 Docker 网站 [Docker Compose 概述](https://docs.docker.com/compose/)和[安装 Docker Compose](https://docs.docker.com/compose/install/)。

### `docker-compose.yml` 文件
<a name="docker-multicontainer-migration.files"></a>

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 文件参考](https://docs.docker.com/compose/compose-file/)。有关 `Dockerrun.aws.json v2` 文件的更多信息，请参阅[`Dockerrun.aws.json` v2](create_deploy_docker_v2config.md#create_deploy_docker_v2config_dockerrun)。


| **`docker-compose.yml`** | **`Dockerrun.aws.json v2`** | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/docker-multicontainer-migration.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/docker-multicontainer-migration.html)  | 
|  <pre>version: '2.4'<br />services:<br />  php-app:<br />    image: "php:fpm"<br />    volumes:<br />      - "./php-app:/var/www/html:ro"<br />      - "${EB_LOG_BASE_DIR}/php-app:/var/log/sample-app"<br />    mem_limit: 128m<br />    environment:<br />      Container: PHP<br />  nginx-proxy:<br />    image: "nginx"<br />    ports:<br />      - "80:80"<br />    volumes:<br />      - "./php-app:/var/www/html:ro"<br />      - "./proxy/conf.d:/etc/nginx/conf.d:ro"<br />      - "${EB_LOG_BASE_DIR}/nginx-proxy:/var/log/nginx"<br />    mem_limit: 128m<br />    links:<br />      - php-app</pre>  | 
|  <pre>{<br />  "AWSEBDockerrunVersion": 2,<br />  "volumes": [<br />    {<br />      "name": "php-app",<br />      "host": {<br />        "sourcePath": "/var/app/current/php-app"<br />      }<br />    },<br />    {<br />      "name": "nginx-proxy-conf",<br />      "host": {<br />        "sourcePath": "/var/app/current/proxy/conf.d"<br />      }<br />    }<br />  ],<br />  "containerDefinitions": [<br />    {<br />      "name": "php-app",<br />      "image": "php:fpm",<br />      "environment": [<br />        {<br />          "name": "Container",<br />          "value": "PHP"<br />        }<br />      ],<br />      "essential": true,<br />      "memory": 128,<br />      "mountPoints": [<br />        {<br />          "sourceVolume": "php-app",<br />          "containerPath": "/var/www/html",<br />          "readOnly": true<br />        }<br />      ]<br />    },<br />    {<br />      "name": "nginx-proxy",<br />      "image": "nginx",<br />      "essential": true,<br />      "memory": 128,<br />      "portMappings": [<br />        {<br />          "hostPort": 80,<br />          "containerPort": 80<br />        }<br />      ],<br />      "links": [<br />        "php-app"<br />      ],<br />      "mountPoints": [<br />        {<br />          "sourceVolume": "php-app",<br />          "containerPath": "/var/www/html",<br />          "readOnly": true<br />        },<br />        {<br />          "sourceVolume": "nginx-proxy-conf",<br />          "containerPath": "/etc/nginx/conf.d",<br />          "readOnly": true<br />        },<br />        {<br />          "sourceVolume": "awseb-logs-nginx-proxy",<br />          "containerPath": "/var/log/nginx"<br />        }<br />      ]<br />    }<br />  ]<br />}<br /> </pre>  | 

### 其他迁移注意事项
<a name="docker-multicontainer-migration.considerations"></a>

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 平台**  | 
| --- | --- | --- | 
|  环境属性  |  为使容器能够访问环境属性，您必须在 `.env` 文件中添加对 `docker-compose.yml` 文件的引用。Elastic Beanstalk 生成 `.env` 文件，将每个属性列为环境变量。有关更多信息，请参阅[在容器中引用环境变量](create_deploy_docker.container.console.md#docker-env-cfg.env-variables)。  |  Elastic Beanstalk 可以直接将环境属性传递给容器。在容器中运行的代码可以将这些属性作为环境变量访问，而无需任何其他配置。  | 
|  日志目录  |  对于每个容器，Elastic Beanstalk 都会创建一个名为 `/var/log/eb-docker/containers/<service name>`（或 `${EB_LOG_BASE_DIR}/<service name>`）的日志目录。有关更多信息，请参阅[利用 Docker Compose 的 Docker 容器自定义日志记录](create_deploy_docker.container.console.md#docker-env-cfg.dc-customized-logging)。  |  对于每个容器，Elastic Beanstalk 都会创建一个名为 `/var/log/containers/<containername>` 的日志目录。有关更多信息，请参阅[容器定义格式](create_deploy_docker_v2config.md#create_deploy_docker_v2config_dockerrun_format)中的 `mountPoints` 字段。  | 

### 迁移步骤
<a name="docker-multicontainer-migration.procedure"></a>

**迁移到 Amazon Linux 2 Docker 平台**

1. 根据应用程序的现有 `docker-compose.yml ` 文件为应用程序创建 `Dockerrun.aws.json v2` 文件。有关更多信息，请参阅上述 [`docker-compose.yml` 文件](#docker-multicontainer-migration.files)部分。

1. 在应用程序项目文件夹的根目录中，将 `Dockerrun.aws.json v2` 文件替换为刚刚创建的 `docker-compose.yml` 文件。

   您的目录结构应如下所示。

   ```
   ~/myApplication
   |-- docker-compose.yml
   |-- .ebextensions
   |-- php-app
   |-- proxy
   ```

1. 使用 **eb init** 命令配置本地目录以部署到 Elastic Beanstalk。

   ```
   ~/myApplication$ eb init -p docker application-name
   ```

1. 使用 **eb create** 命令创建环境并部署 Docker 映像。

   ```
   ~/myApplication$ eb create environment-name
   ```

1. 如果您的应用是 Web 应用程序，则在启动环境后，使用 **eb open** 命令在 Web 浏览器中查看它。

   ```
   ~/myApplication$ eb open environment-name
   ```

1. 您可以使用 **eb status** 命令显示新创建的环境的状态。

   ```
   ~/myApplication$ eb status environment-name
   ```

# Elastic Beanstalk 上预配置的 Docker GlassFish 容器
<a name="create_deploy_dockerpreconfig"></a>

**注意**  
 [2022 年 7 月 18 日，](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html)**Elastic Beanstalk 将所有基于亚马逊 Linux AMI AL1 () 的平台分支的状态设置为停用。**有关迁移到当前且完全受支持的 Amazon Linux 2023 平台分支的更多信息，请参阅 [将 Elastic Beanstalk Linux 应用程序迁移到 Amazon Linux 2023 或 Amazon Linux 2](using-features.migration-al.md)。

不再支持在亚马逊 Linux AMI (AL1) 上运行的预配置 Docker GlassFish 平台分支。要将您的 GlassFish 应用程序迁移到支持的亚马逊 Linux 2023 平台，请将您的应用程序代码部署 GlassFish 到亚马逊 Linux 2023 Docker 镜像。有关更多信息，请参阅以下主题：[将 GlassFish 应用程序部署到 Docker 平台：2023 年亚马逊 Linux 的迁移之路](#docker-glassfish-tutorial)。

## 开始使用预配置 Docker 容器 - Amazon Linux AMI（Amazon Linux 2 之前）上
<a name="create_deploy_dockerpreconfig.walkthrough"></a>

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

### 设置本地开发环境
<a name="create_deploy_dockerpreconfig.walkthrough.setup"></a>

在本演练中，我们使用了一个 GlassFish 示例应用程序。

**设置环境**

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

   ```
   ~$ mkdir eb-preconf-example
   ~$ cd eb-preconf-example
   ```

1. 将示例应用程序代码下载到新文件夹。

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

### 在本地开发和测试
<a name="create_deploy_dockerpreconfig.walkthrough.dev"></a>

**开发示例 GlassFish 应用程序**

1. 将 `Dockerfile` 添加到应用程序的根目录文件夹。在文件中，指定用于运行本地预配置的 AWS Elastic Beanstalk Docker 容器的 Docker 基础镜像。稍后你将把你的应用程序部署到 Elastic Beanstal GlassFish k 预配置的 Docker 平台版本。选择此平台版本使用的 Docker 基本映像。要了解此平台版本的当前 Docker 映像的更多信息，请参阅《AWS Elastic Beanstalk 平台》**指南中的 *AWS Elastic Beanstalk 支持的平台*页面的[预配置的 Docker](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.dockerpreconfig) 部分。  
**Example \$1/E/b-preconf-exampleDockerfile**  

   ```
   # For Glassfish 5.0 Java 8
   FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1
   ```

   有关使用 `Dockerfile` 的更多信息，请参阅[准备 Docker 映像以部署到 Elastic Beanstalk](single-container-docker-configuration.md)。

1. 构建 Docker 映像。

   ```
   ~/eb-preconf-example$ docker build -t my-app-image .
   ```

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

   ```
   $ docker run -it --rm -p 3000:8080 my-app-image
   ```

1. 要查看示例应用程序，请将以下 URL 键入您的 Web 浏览器。

   ```
   http://localhost:3000
   ```  
![\[在 Web 浏览器中显示的 GlassFish 示例应用程序\]](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/images/dockerpreconfig-webpage.png)

### 部署到 Elastic Beanstalk
<a name="create_deploy_dockerpreconfig.walkthrough.deploy"></a>

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

**将应用程序部署到 Elastic Beanstalk**

1. 在应用程序的根文件夹中，将 `Dockerfile` 重命名为 `Dockerfile.local`。Elastic Beanstalk 若要使用 `Dockerfile`，则必须执行此步骤，该文件中包含关于 Elastic Beanstalk 在 Elastic Beanstalk 环境中的每个 Amazon EC2 实例上构建自定义 Docker 映像的正确说明。
**注意**  
如果您的 `Dockerfile` 包含修改平台版本的基础 Docker 映像的指令，则无需执行此步骤。如果您的 `Dockerfile` 仅包含用来指定从中构建容器的基本映像的 `Dockerfile` 行，则完全无需使用 `FROM`。在这种情况下，`Dockerfile` 是冗余的。

1. 创建应用程序源包。

   ```
   ~/eb-preconf-example$ zip myapp.zip -r *
   ```

1. [使用以下预配置链接打开 Elastic Beanstalk 控制台：console.aws.amazon。 com/elasticbeanstalk/home\$1/newApplication？ 应用程序名称=教程&环境类型= LoadBalanced](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced)

1. 对于 **Platform (平台)**，在 **Preconfigured – Docker (预配置 – Docker)** 下，选择 **Glassfish**。

1. 对于 **Application code (应用程序节点)**，选择 **Upload your code (上传您的节点)**，然后选择 **Upload (上传)**。

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

1. 选择**上传**。

1. 选择**复查并启动**。

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

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

## 将 GlassFish 应用程序部署到 Docker 平台：2023 年亚马逊 Linux 的迁移之路
<a name="docker-glassfish-tutorial"></a>

本教程的目标是为使用预配置的 Docker GlassFish 平台（基于亚马逊 Linux AMI）的客户提供向亚马逊 Linux 2023 的迁移路径。您可以通过部署 GlassFish 将 GlassFish 应用程序迁移到亚马逊 Linux 2023，将应用程序代码迁移到亚马逊 Linux 2023 Docker 镜像。

本教程将引导你使用 AWS Elastic Beanstalk Docker 平台将基于 [Java EE 应用服务器的应用程序部署到 E GlassFish ](https://www.oracle.com/middleware/technologies/glassfish-server.html) lastic Beanstalk 环境中。

我们演示两种构建 Docker 映像的方法：
+ **简单** — 提供您的 GlassFish 应用程序源代码，让 Elastic Beanstalk 在配置环境的过程中构建和运行 Docker 映像。这很容易设置，但代价是增加实例预置时间。
+ **高级** – 构建包含应用程序代码和依赖关系的自定义 Docker 映像，并将其提供给 Elastic Beanstalk 以在您的环境中使用。这种方法的参与度稍高一些，并减少了环境中实例的预置时间。

### 先决条件
<a name="docker-glassfish-tutorial.prereqs"></a>

本教程假设您对基本 Elastic Beanstalk 操作、Elastic Beanstalk 命令行界面（EB CLI）和 Docker 有一定了解。如果尚不了解，请按照[了解如何开始使用 Elastic Beanstalk](GettingStarted.md)中的说明操作以启动您的第一个 Elastic Beanstalk 环境。本教程使用 [EB CLI](eb-cli3.md)，但您也可以使用 Elastic Beanstalk 控制台创建环境并上传应用程序。

要完成本教程，您需要做以下 Docker 组件：
+ 在本地安装有效的 Docker。有关更多信息，请参阅 Docker 文档网站上的[获取 Docker](https://docs.docker.com/install/)。
+ 访问 Docker Hub。您需要创建一个 Docker ID 才能访问 Docker Hub。有关更多信息，请参阅 Docker 文档网站上的[共享应用程序](https://docs.docker.com/get-started/04_sharing_app/)。

要了解有关在 Elastic Beanstalk 平台上配置 Docker 环境的更多信息，请参阅同一章中的[准备 Docker 映像以部署到 Elastic Beanstalk](single-container-docker-configuration.md)。

### 简单示例：提供您的应用程序代码
<a name="docker-glassfish-tutorial.simple"></a>

这是部署 GlassFish 应用程序的简便方法。提供您的应用程序源代码以及本教程中包含的 `Dockerfile`。Elastic Beanstalk 会生成一个 Docker 镜像，其中包含你的应用程序和软件堆栈。 GlassFish 然后，Elastic Beanstalk 在环境实例上运行该映像。

此方法的一个问题是，无论 Elastic Beanstalk 何时为您的环境创建实例，都会在本地构建 Docker 映像。映像构建会增加实例预置时间。这种影响不限于初始环境创建，也会在扩展操作期间发生。

**使用示例 GlassFish 应用程序启动环境**

1. 下载示例 `docker-glassfish-al2-v1.zip`，然后将 `.zip` 文件展开到开发环境的目录中。

   ```
   ~$ curl https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-al2-v1.zip --output docker-glassfish-al2-v1.zip
   ~$ mkdir glassfish-example
   ~$ cd glassfish-example
   ~/glassfish-example$ unzip ../docker-glassfish-al2-v1.zip
   ```

   您的目录结构应如下所示。

   ```
   ~/glassfish-example
   |-- Dockerfile
   |-- Dockerrun.aws.json
   |-- glassfish-start.sh
   |-- index.jsp
   |-- META-INF
   |   |-- LICENSE.txt
   |   |-- MANIFEST.MF
   |   `-- NOTICE.txt
   |-- robots.txt
   `-- WEB-INF
       `-- web.xml
   ```

   以下文件是在环境中构建和运行 Docker 容器的关键：
   + `Dockerfile` – 提供 Docker 用于构建具有应用程序和所需依赖关系的映像的说明。
   + `glassfish-start.sh` – Docker 映像运行以启动应用程序的 Shell 脚本。
   + `Dockerrun.aws.json`— 提供日志密钥，以包括 GlassFish 应用程序服务器登录[日志文件请求](using-features.logging.md)。如果您对 GlassFish 日志不感兴趣，可以省略此文件。

1. 为到 Elastic Beanstalk 的部署配置本地目录。

   ```
   ~/glassfish-example$ eb init -p docker glassfish-example
   ```

1. （可选）使用 **eb local run** 命令在本地生成并运行您的容器。

   ```
   ~/glassfish-example$ eb local run --port 8080
   ```
**注意**  
要了解有关 **eb local** 命令的更多信息，请参阅 [**eb local**](eb3-local.md)。Windows 中不支持此命令。或者，您也可以使用 **docker build** 和 **docker run** 命令生成并运行您的容器。有关更多信息，请参阅 [Docker 文档](https://docs.docker.com/)。

1. （可选）当您的容器正在运行时，可使用 **eb local open** 命令在 Web 浏览器中查看您的应用程序。或者，在 Web 浏览器中打开 [http://localhost:8080/](http://localhost:8080/)。

   ```
   ~/glassfish-example$ eb local open
   ```

1. 使用 **eb create** 命令创建环境并部署应用程序。

   ```
   ~/glassfish-example$ eb create glassfish-example-env
   ```

1. 启动环境后，使用 **eb open** 命令在 Web 浏览器中查看它。

   ```
   ~/glassfish-example$ eb open
   ```

完成使用该示例后，终止环境并删除相关资源。

```
~/glassfish-example$ eb terminate --all
```

### 高级示例：提供预构建的 Docker 映像
<a name="docker-glassfish-tutorial.advanced"></a>

这是一种更高级的 GlassFish 应用程序部署方式。在第一个示例的基础上，您创建了一个包含应用程序代码和 GlassFish 软件堆栈的 Docker 镜像，然后将其推送到 Docker Hub。完成此一次性步骤后，您可以根据自定义映像启动 Elastic Beanstalk 环境。

当您启动环境并提供 Docker 映像时，环境中的实例会直接下载并使用此映像，而不需要构建 Docker 映像。因此，实例预置时间会减少。

**注意**  
以下步骤将创建一个公开可用的 Docker 映像。
您将使用本地安装的 Docker 中的 Docker 命令以及 Docker Hub 凭据。有关更多信息，请参阅本主题中的前面的*先决条件*部分。

**使用预构建的 GlassFish 应用程序 Docker 镜像启动环境**

1. 下载并展开示例 `docker-glassfish-al2-v1.zip`，如前面的[简单示例](#docker-glassfish-tutorial.simple)所示。如果您已完成该示例，则可以使用已有的目录。

1. 构建一个 Docker 映像并将其推送到 Docker Hub。输入你的 Docker ID *docker-id* 以登录 Docker Hub。

   ```
   ~/glassfish-example$ docker build -t docker-id/beanstalk-glassfish-example:latest .
   ~/glassfish-example$ docker push docker-id/beanstalk-glassfish-example:latest
   ```
**注意**  
在推送映像之前，您可能需要运行 **docker login**。如果您运行不带参数的命令，系统将提示您输入 Docker Hub 凭据。

1. 创建其他目录。

   ```
   ~$ mkdir glassfish-prebuilt
   ~$ cd glassfish-prebuilt
   ```

1. 将以下示例复制到名为 `Dockerrun.aws.json` 的文件中。  
**Example `~/glassfish-prebuilt/Dockerrun.aws.json`**  

   ```
   {
     "AWSEBDockerrunVersion": "1",
     "Image": {
       "Name": "docker-username/beanstalk-glassfish-example"
     },
     "Ports": [
       {
         "ContainerPort": 8080,
         "HostPort": 8080
       }
     ],
     "Logging": "/usr/local/glassfish5/glassfish/domains/domain1/logs"
   }
   ```

1. 为到 Elastic Beanstalk 的部署配置本地目录。

   ```
   ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
   ```

1. （可选）使用 **eb local run** 命令在本地运行容器。

   ```
   ~/glassfish-prebuilt$ eb local run --port 8080
   ```

1. （可选）当您的容器正在运行时，可使用 **eb local open** 命令在 Web 浏览器中查看您的应用程序。或者，在 Web 浏览器中打开 [http://localhost:8080/](http://localhost:8080/)。

   ```
   ~/glassfish-prebuilt$ eb local open
   ```

1. 使用 **eb create** 命令创建环境并部署 Docker 映像。

   ```
   ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
   ```

1. 启动环境后，使用 **eb open** 命令在 Web 浏览器中查看它。

   ```
   ~/glassfish-prebuilt$ eb open
   ```

完成使用该示例后，终止环境并删除相关资源。

```
~/glassfish-prebuilt$ eb terminate --all
```