

 AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用这项服务。[了解详情](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 适用于 Docker 的教程 AWS Cloud9
<a name="sample-docker"></a>

本教程向您展示如何将 AWS Cloud9 SSH 开发环境连接到亚马逊 EC2 中亚马逊 Linux 实例中正在运行的 Docker 容器。这使您可以使用 AWS Cloud9 IDE 处理 Docker 容器内的代码和文件，并在该容器上运行命令。有关 Docker 的信息，请参阅 Docker 网站上的 [Docker 是什么](https://www.docker.com/what-docker)。

按照本教程并创建此示例可能会导致您的 AWS 账户被扣款。其中包括可能对 Amazon EC2 等服务收取的费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。

**Topics**
+ [先决条件](#sample-docker-prereqs)
+ [步骤 1：安装并运行 Docker](#sample-docker-install)
+ [步骤 2：构建镜像](#sample-docker-build)
+ [步骤 3：运行容器](#sample-docker-run)
+ [步骤 4：创建环境](#sample-docker-env)
+ [步骤 5：运行代码](#sample-docker-code)
+ [步骤 6：清除](#sample-docker-clean-up)

## 先决条件
<a name="sample-docker-prereqs"></a>
+  **您应该有一个运行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 实例。**此示例假设您的账户中已经有一个运行亚马逊 Linux 或 Ubuntu 服务器的 Amazon EC2 实例。 AWS 要启动 Amazon EC2 实例，请参阅[启动 Linux 虚拟机](https://aws.amazon.com/getting-started/tutorials/launch-a-virtual-machine/)。在向导的 **Choose an Amazon Machine Image (AMI)（选择 Amazon Machine Image (AMI)）**页面中，选择其显示名称以 **Amazon Linux AMI** 或 **Ubuntu Server** 开头的 AMI。
+  **如果 Amazon EC2 实例在 Amazon VPC 中运行，则存在额外的要求。**请参阅[AWS Cloud9 开发环境的 VPC 设置](vpc-settings.md)。
+  **Amazon EC2 实例应至少具有 8 到 16 GB 的可用磁盘空间。**此示例使用 3 GB 以上的 Docker 映像，并且可使用 3 GB 或更多磁盘空间的额外增量来构建映像。如果您尝试在可用空间为 8 GB 或更少的磁盘上运行此示例，我们发现，Docker 映像可能不会构建或 Docker 容器可能不会运行。要检查实例的可用磁盘空间，可以在实例上运行诸如 ** `df -h` ** 这样的命令（针对“用户可读格式的磁盘文件系统信息”）。要增加现有实例的磁盘大小，请参阅《Amazon EC2 用户指南》**中的[修改卷](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html)。

## 步骤 1：安装并运行 Docker
<a name="sample-docker-install"></a>

在此步骤中，检查 Docker 是否安装在 Amazon EC2 实例上，如果未安装 Docker，则请安装它。安装 Docker 后，在实例上运行它。

1. 通过使用 SSH 客户端（如 **`ssh`** 实用工具或 PuTTY）连接到正在运行的 Amazon EC2 实例。为此，请参阅[启动 Linux 虚拟机](https://aws.amazon.com/getting-started/tutorials/launch-a-virtual-machine/)中的“步骤 3：连接到您的实例”。

1. 检查是否在实例上安装了 Docker。为此，请在实例上将 **`docker`** 命令与 **`--version`** 选项一起运行。

   ```
   docker --version
   ```

   如果已安装 Docker，则将显示 Docker 版本和版本号。在此情况下，请向前跳至此过程中后面的步骤 5。

1. 安装 Docker。为此，请将 ** `yum` ** 命令或 ** `apt` ** 命令与 ** `install` ** 操作一起运行，并指定要安装的 ** `docker` ** 或 ** `docker.io` ** 程序包。

   对于 Amazon Linux：

   ```
   sudo yum install -y docker
   ```

   对于 Ubuntu Server：

   ```
   sudo apt install -y docker.io
   ```

1. 确认已安装 Docker。为此，请再次运行 **`docker --version`** 命令。将显示 Docker 版本和版本号。

1. 运行 Docker。为此，请将 ** `service` ** 命令与 ** `docker` ** 服务和 ** `start` ** 操作一起运行。

   ```
   sudo service docker start
   ```

1. 确认 Docker 正在运行。为此，请将 **`docker`** 命令与 **`info`** 操作一起运行。

   ```
   sudo docker info
   ```

   如果 Docker 正在运行，则将显示有关 Docker 的信息。

## 步骤 2：构建镜像
<a name="sample-docker-build"></a>

在此步骤中，您使用 Dockerfile 在实例上构建一个 Docker 映像。此示例使用包括 Node.js 和示例聊天服务器应用程序的映像。

1. 在实例上，创建 Dockerfile。为此，在 SSH 客户端仍连接到实例的情况下，在实例上的 `/tmp` 目录中，创建一个名为 `Dockerfile` 的文件。例如，运行 ** `touch` ** 命令，如下所示。

   ```
   sudo touch /tmp/Dockerfile
   ```

1. 将以下内容添加到 `Dockerfile` 文件。

   ```
   # Build a Docker image based on the Amazon Linux 2 Docker image.
   FROM amazonlinux:2
   
   # install common tools
   RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
   RUN yum update -y
   RUN yum install -y sudo bash curl wget git man-db nano vim bash-completion tmux  gcc gcc-c++ make tar
   
   # Enable the Docker container to communicate with AWS Cloud9 by
   # installing SSH.
   RUN yum install -y openssh-server
   
   # Ensure that Node.js is installed.
   RUN yum install -y nodejs
   
   # Create user and enable root access
   RUN useradd --uid 1000 --shell /bin/bash -m --home-dir /home/ubuntu ubuntu && \
       sed -i 's/%wheel\s.*/%wheel ALL=NOPASSWD:ALL/' /etc/sudoers && \
       usermod -a -G wheel ubuntu
   
   # Add the AWS Cloud9 SSH public key to the Docker container.
   # This assumes a file named authorized_keys containing the
   # AWS Cloud9 SSH public key already exists in the same
   # directory as the Dockerfile.
   RUN mkdir -p /home/ubuntu/.ssh
   ADD ./authorized_keys /home/ubuntu/.ssh/authorized_keys
   RUN chown -R ubuntu /home/ubuntu/.ssh /home/ubuntu/.ssh/authorized_keys && \
   chmod 700 /home/ubuntu/.ssh && \
   chmod 600 /home/ubuntu/.ssh/authorized_keys
   
   # Update the password to a random one for the user ubuntu.
   RUN echo "ubuntu:$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" | chpasswd
   
   # pre-install Cloud9 dependencies
   USER ubuntu
   RUN curl https://d2j6vhu5uywtq3.cloudfront.net/static/c9-install.sh | bash
   
   USER root
   # Start SSH in the Docker container.
   CMD ssh-keygen -A && /usr/sbin/sshd -D
   ```

   要将上述内容添加到 `Dockerfile` 文件，您可以在实例上使用 ** `vi` ** 实用工具，如下所示。

   1. 使用 AWS Cloud9 打开和编辑`/tmp/Dockerfile`文件。

      ```
      sudo vi /tmp/Dockerfile
      ```

   1. 将上述内容粘贴到 `Dockerfile` 文件。如果不确定如何执行此操作，请参阅 SSH 客户端文档。

   1. 切换到命令模式。要执行此操作，请按 `Esc` 键。（`-- INSERT --` 将从窗口底部消失。）

   1. 键入 `:wq`（以写入 `/tmp/Dockerfile` 文件，保存此文件，然后退出 **`vi`**），然后按 `Enter`。
**注意**  
您可以从 AWS CodeBuild中访问经常更新的 Docker 镜像列表。有关更多信息，请参阅《*AWS CodeBuild 用户指南*》 CodeBuild中[提供的 Docker 镜像](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html)。

1. 在实例上，创建一个包含供 Docker 容器使用的 AWS Cloud9 SSH 公钥的文件。为此，请在 `Dockerfile` 文件所在的目录中，创建一个名为 `authorized_keys` 的文件，例如，通过运行 **`touch`** 命令。

   ```
   sudo touch /tmp/authorized_keys
   ```

1. 将 AWS Cloud9 SSH 公钥添加到`authorized_keys`文件中。要获取 AWS Cloud9 SSH 公钥，请执行以下操作：

   1. 打开 AWS Cloud9 控制台，网址为[https://console.aws.amazon.com/cloud9/](https://console.aws.amazon.com/cloud9/)。

   1. 在 AWS 导航栏的 AWS 区域选择器中，选择您要在本主题后面创建 AWS Cloud9 开发环境的 AWS 区域。

   1. 如果显示欢迎页面，请在 “**新建 AWS Cloud9 环境**” 中选择 “**创建环境**”。如未显示，则选择 **Create environment（创建环境）**。

   1. 在 **Name environment（命名环境）**页面上，为 **Name（名称）**键入环境的名称。（在这里键入的名称不重要。稍后您将选择其他名称。）

   1. 选择**下一步**。

   1. 对于 **Environment type（环境类型）**，请选择 **Connect and run in remote server (SSH)（连接并在远程服务器中运行 (SSH)）**。

   1. 展开 **View public SSH key (查看公有 SSH 密钥)**。

   1. 选择 **Copy key to clipboard（将密钥复制到剪贴板）**。（这位于 **View public SSH key（查看公有 SSH 密钥）** 和 **Advanced settings（高级设置）**之间。）

   1. 选择**取消**。

   1. 将剪贴板的内容粘贴到 `authorized_keys` 文件中，然后保存此文件。例如，可以使用 ** `vi` ** 实用工具，如此步骤前面所述。

1. 通过将 ** `docker` ** 命令与 ** `build` ** 操作一起运行，将标签 `cloud9-image:latest` 添加到镜像并指定要使用的 `Dockerfile` 文件的路径来构建镜像。

   ```
   sudo docker build -t cloud9-image:latest /tmp
   ```

   如果成功，生成输出的最后两行将显示 `Successfully built` 和 `Successfully tagged`。

   要确认 Docker 已成功构建映像，请将** `docker` **命令与 `image ls` 操作一起运行。

   ```
   sudo docker image ls
   ```

   如果成功，输出将显示一个条目（其中，`REPOSITORY` 字段设置为 `cloud9-image`，`TAG` 字段设置为 `latest`）。

1. 记下 Amazon EC2 实例的公有 IP 地址。您将在[步骤 4：创建环境](#sample-docker-env)中需要它。如果您不确定实例的公有 IP 地址，则可在实例上运行以下命令来获取此地址。

   ```
   curl http://169.254.169.254/latest/meta-data/public-ipv4
   ```

## 步骤 3：运行容器
<a name="sample-docker-run"></a>

在此步骤中，在实例上运行 Docker 容器。此容器基于在上一步中构建的映像。

1. 要运行 Docker 容器，请在实例上将** `docker` **命令与** `run` **操作和以下选项一起运行。

   ```
   sudo docker run -d -it --expose 9090 -p 0.0.0.0:9090:22 --name cloud9 cloud9-image:latest
   ```
   +  `-d` 在已分离模式下运行容器，以便在用于运行容器的根进程（此示例中为 SSH 客户端）退出时退出。
   +  `-it` 运行带分配的伪 TTY 的容器并使 STDIN 保持打开状态，即使未附加容器也是如此。
   +  `--expose` 使指定端口（此示例中为端口 `9090`）可通过容器使用。
   +  `-p` 使指定端口在内部通过指定 IP 地址和端口可供 Amazon EC2 实例使用。在此示例中，可通过 Amazon EC2 实例上的端口 `22` 内部访问容器上的端口 `9090`。
   +  `--name` 是容器的用户可读名称（此示例中为 `cloud9`）。
   +  `cloud9-image:latest` 是要用于运行容器的已构建映像的用户可读名称。

   要确认 Docker 正在成功运行容器，请将** `docker` **命令与 `container ls` 操作一起运行。

   ```
   sudo docker container ls
   ```

   如果成功，输出将显示一个条目（其中，`IMAGE` 字段设置为 `cloud9-image:latest`，`NAMES` 字段设置为 `cloud9`）。

1. 登录运行的容器。为此，请将** `docker` **命令与** `exec` **操作和以下选项一起运行。

   ```
   sudo docker exec -it cloud9 bash
   ```
   +  `-it` 运行带分配的伪 TTY 的容器并使 STDIN 保持打开状态，即使未附加容器也是如此。
   +  `cloud9` 是运行的容器的用户可读名称。
   +  `bash` 在运行的容器中启动标准 Shell。

   如果成功，则终端提示符将更改为显示登录用户的容器名称和容器 ID。
**注意**  
如果您需要从运行的容器注销，请运行 ** `exit` ** 命令。终端提示符将更改回显示登录用户的实例名称和实例的私有 DNS。容器应仍在运行中。

1. 对于正在运行的容器上 AWS Cloud9 要在登录后启动的目录，请将其访问权限设置为**`rwxr-xr-x`**。这意味着所有者的 read-write-execute权限、群组的读取执行权限以及其他人的读取执行权限。例如，如果目录的路径为 `~`，则可以通过在运行的容器中运行 **`chmod`** 命令来设置对应目录的这些权限，如下所示。

   ```
   sudo chmod u=rwx,g=rx,o=rx ~
   ```

1. 记下运行的容器上包含 Node.js 二进制文件的目录的路径，因为您在[步骤 4：创建环境](#sample-docker-env)中将需要它。如果您不确定此路径，请在运行的容器上运行以下命令来获取它。

   ```
   which node
   ```

## 步骤 4：创建环境
<a name="sample-docker-env"></a>

在此步骤中，您将使用 AWS Cloud9 创建 AWS Cloud9 SSH 开发环境并将其连接到正在运行的 Docker 容器。 AWS Cloud9 创建环境后，它会显示 AWS Cloud9 IDE，以便您可以开始使用容器中的文件和代码。

您可以使用 AWS Cloud9 控制台创建 AWS Cloud9 SSH 开发环境。您无法使用 CLI 创建 SSH 环境。

### 先决条件
<a name="prerequisites"></a>
+ 首先确保您已完成 [设置 AWS Cloud9](setting-up.md) 中的步骤。这样，您便可以登录到 AWS Cloud9 控制台并创建环境。
+ 确定要连接到环境的现有云计算实例（例如，您的中的 Amazon EC2 实例 AWS 账户）或您 AWS Cloud9 自己的服务器。
+ 确保现有实例或您自己的服务器满足所有 [SSH 托管要求](ssh-settings.md#ssh-settings-requirements)。这包括安装特定版本的 Python、Node.js 和其他组件；对于您希望的登录后 AWS Cloud9 开始目录设置特定权限；以及设置任何关联的 Amazon Virtual Private Cloud。

### 创建 SSH 环境
<a name="create-the-envsshtitle"></a>

1. 确保您已完成上述先决条件。

1. 使用 SSH 客户端连接到现有实例或您自己的服务器（如果您尚未连接）。这确保了您可以向实例或服务器添加必要的公有 SSH 密钥值。这些内容将在此过程的稍后介绍。
**注意**  
要连接到现有的 AWS 云 计算实例，请参阅以下一项或多项资源：  
对于 Amazon EC2，请参阅《Amazon EC2 用户指南》**中的[连接到您的 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。
有关 Amazon Lightsail，请参阅 [Amazon Lightsail 文档](https://lightsail.aws.amazon.com/ls/docs/how-to/article/lightsail-how-to-connect-to-your-instance-virtual-private-server)中的*连接到基于 Linux/Unix 的 Lightsail 实例*。
有关信息 AWS Elastic Beanstalk，请参阅《*AWS Elastic Beanstalk 开发人员指南》*中的[列出和连接到服务器实例](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.ec2connect.html)。
有关信息 AWS OpsWorks，请参阅《*AWS OpsWorks 用户指南》*[中的 “使用 SSH 登录 Linux 实例](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html)”。
有关其他 AWS 服务，请参阅该特定服务的文档。
要连接到您自己的服务器，请使用 SSH。已经在 macOS 和 Linux 操作系统上安装了 SSH。要在 Windows 上使用 SSH 连接到服务器，您必须安装 [PuTTY](https://www.putty.org/)。

1. 登录 AWS Cloud9 控制台，网址为[https://console.aws.amazon.com/cloud9/](https://console.aws.amazon.com/cloud9/)。

1. 登录 AWS Cloud9 控制台后，在顶部导航栏中选择一个 AWS 区域 来创建环境。有关可用列表 AWS 区域，请参阅[AWS Cloud9](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloud9_region)中的*AWS 一般参考*。  
![\[AWS Cloud9 控制台中的区域选择器\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/consolas_region_new_UX.png)

1. 如果您是第一次创建开发环境，则将显示欢迎页面。在 “**新建 AWS Cloud9 环境**” 面板中，选择 “**创建环境**”。

   如果您之前创建过开发环境，您也可以展开屏幕左侧的窗格。选择 **Your environments**（您的环境），然后选择 **Create environment**（创建环境）。

   在**欢迎**页面：  
![\[如果显示欢迎页面，则选择“Create environment（创建环境）”按钮\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/create_welcome_env_new_UX.png)

   或在 **Your environment（您的环境）**页面内：  
![\[如果未显示欢迎页面，则选择“Create environment（创建环境）”按钮\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/console_create_env_new_UX.png)

1. 在 **Create environment**（创建环境）页面上，输入环境的名称。

1. 在 **Description（描述）**中输入对环境的描述。在本教程中，请使用 `This environment is for the AWS Cloud9 tutorial.`

1. 对于 **Environment type**（环境类型），请从以下选项中选择 **Existing Compute**（现有计算）：
   + **新的 EC2 实例** — 启动 AWS Cloud9 可以直接通过 SSH 连接的 Amazon EC2 实例。
   + **现有计算**-启动不需要任何开放入站端口的 Amazon EC2 实例。 AWS Cloud9 通过连接到实例[AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)。
     + 如果您选择 **Existing compute**（现有计算）选项，将创建服务角色和 IAM 实例配置文件，以允许 Systems Manager 代表您与 EC2 实例进行交互。您可以在界面下方的 **Systems Manager 访问的服务角色和实例配置文件**部分查看两者的名称。有关更多信息，请参阅 [使用访问无入口 EC2 实例 AWS Systems Manager](ec2-ssm.md)。
**警告**  
为您的环境创建 EC2 实例可能会导致您 AWS 账户 收取 Amazon EC2 费用。使用 Systems Manager 管理与 EC2 实例的连接不会产生额外费用。
**警告**  
AWS Cloud9 使用 SSH 公钥安全地连接到您的服务器。要建立安全连接，请将我们的公有密钥添加到您的 `~/.ssh/authorized_keys` 文件中，并在以下步骤中提供您的登录凭证。选择 **Copy key to clipboard**（将密钥复制到剪贴板）以复制 SSH 密钥，或选择 **View public SSH key**（查看 SSH 公有密钥）以查看密钥。

1. 在 **Existing compute**（现有计算）面板上，对于 **User**（用户），请输入您在此过程中之前连接到实例或服务器时使用的登录名。例如，对于 AWS 云 计算实例，该登录名可能为 `ec2-user`、`ubuntu` 或 `root`。
**注意**  
我们建议将登录名与实例或服务器上的管理权限或管理员用户关联。更具体地说，我们建议此登录名应在实例或服务器上拥有 Node.js 安装。要进行此检查，请在实例或服务器的终端上运行命令 **`ls -l $(which node)`**（如果您使用的是 `nvm`，请运行 **`ls -l $(nvm which node)`**）。此命令会显示 Node.js 安装的拥有者名称。它还会显示安装的权限、组名称和位置。

1. 对于 **Host**（主机），请输入公有 IP 地址（首选）或者实例或服务器的主机名。

1. 在 “**端**口” 中，输入您 AWS Cloud9 要用来尝试连接到实例或服务器的端口。您也可保留默认端口。

1. 选择 **Additional details - optional**（其他详细信息 – 可选）以显示环境路径、node.js 二进制文件路径和 SSH 跳转主机信息。

1. 在**环境路径**中，输入您要 AWS Cloud9 从中启动的实例或服务器上的目录路径。您之前在此步骤的先决条件中确定了这一点。如果将此项留空， AWS Cloud9 将使用实例或服务器在登录之后通常开始使用的目录。这通常为主目录或默认目录。

1. 对于 **Path to Node.js binary path**（Node.js 二进制文件路径），请输入路径信息以指定实例或服务器上指向 Node.js 二进制文件的路径。要获取路径，您可以在实例或服务器上运行命令 **`which node`**（在使用 `nvm` 时为 **`nvm which node`**）。例如，路径可能为 `/usr/bin/node`。如果将此项留空， AWS Cloud9 在尝试连接时，将尝试猜测 Node.js 二进制文件所在的位置。

1. 对于 **SSH jump host**（SSH 跳转主机），输入有关实例或服务器使用的跳转主机的信息。使用格式 `USER_NAME@HOSTNAME:PORT_NUMBER`（例如 `ec2-user@:ip-192-0-2-0:22`）。

   跳转主机必须满足以下要求：
   + 它必须可使用 SSH 通过公有互联网访问。
   + 它必须允许任意 IP 地址通过指定端口的入站访问。
   + 复制到现有实例或服务器上 `~/.ssh/authorized_keys` 文件中的公有 SSH 密钥值还必须复制到跳转主机上的 `~/.ssh/authorized_keys` 文件中。
   + 必须安装有 Netcat。

1. 通过为每个标签提供**键**和**值**，添加最多 50 个标签。要执行此操作，请选择 **Add new tag**（添加新标签）。这些标签作为资源标签附加到 AWS Cloud9 环境，并传播到以下基础资源： CloudFormation 堆栈、Amazon EC2 实例和 Amazon EC2 安全组。要了解有关标签的更多信息，请参阅 *[IAM 用户指南中的[使用 AWS 资源标签控制访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)以及本指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/)*中有关标签的[高级信息](tags.md)。
**警告**  
如果您在创建标签后更新这些标签，则更改不会传播到底层资源。有关更多信息，请参阅[标签](tags.md)高级信息中的 [将标签更新传播到底层资源](tags.md#tags-propagate)。

1. 选择 **Create**（创建）以创建您的环境，然后系统会将您重定向到主页。成功创建帐户后， AWS Cloud9 控制台顶部会出现一个绿色的闪光条。您可以选择新环境并选择 **Open in Cloud9**（在 Cloud9 中打开）以启动 IDE。  
![\[AWS Cloud9 AWS Cloud9 控制台中的 IDE 选择器\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/cloud9-ide-open.png)

   如果未能创建账户，则 AWS Cloud9 控制台顶部会出现一个红色的闪光条。由于您的网络浏览器、 AWS 访问权限、实例或关联网络存在问题，您的账户可能无法创建。您可以在 [AWS Cloud9 故障排除](troubleshooting.md#troubleshooting-env-loading)部分找到有关可能修复导致账户失败问题的信息。

**注意**  
如果您的环境使用代理来访问 Internet，则必须向其提供代理详细信息， AWS Cloud9 这样它才能安装依赖关系。有关更多信息，请参阅 [无法安装依赖项](troubleshooting.md#proxy-failed-dependencies)。

## 步骤 5：运行代码
<a name="sample-docker-code"></a>

在此步骤中，您将使用 AWS Cloud9 IDE 在正在运行的 Docker 容器中运行示例应用程序。

1. 显示正在运行的容器的 AWS Cloud9 IDE 后，启动示例聊天服务器。为此，请在 **Environment (环境)** 窗口中，右键单击示例 `workspace/server.js` 文件，然后选择 **Run (运行)**。

1. 预览示例应用程序。为此，请在 **Environment (环境)** 窗口中，打开 `workspace/client/index.html` 文件。然后，在菜单栏上，依次选择 **Tools (工具)、Preview (预览)、Preview Running Application (预览运行的应用程序)**。

1. 在应用程序预览标签页上，对于 **Your Name (您的姓名)**，键入您的姓名。对于 **Message (消息)**，请输入消息。然后选择 **Send (发送)**。聊天服务器会将您的姓名和消息添加到列表中。

## 步骤 6：清除
<a name="sample-docker-clean-up"></a>

在此步骤中，您将删除环境并从 Amazon EC2 实例中移除 AWS Cloud9 和 Docker 支持文件。此外，为了防止在您使用完此示例后继续向您的 AWS 账户收费，您应该终止运行 Docker 的 Amazon EC2 实例。

### 步骤 6.1：删除环境
<a name="step-6-1-delete-the-envtitle"></a>

要删除环境，请参阅 [删除中的环境 AWS Cloud9](delete-environment.md)。

### 步骤 6.2：从容器中移除 AWS Cloud9 支持文件
<a name="step-6-2-remove-ac9-support-files-from-the-container"></a>

删除环境后，一些 AWS Cloud9 支持文件仍保留在容器中。如果您想继续使用容器但不再需要这些支持文件，请在容器登录后从您指定的 AWS Cloud9 目录中删除该文件`.c9`夹。例如，如果目录为 `~`，请将 ** `rm` ** 命令与 ** `-r` ** 选项一起运行，如下所示。

```
sudo rm -r ~/.c9
```

### 步骤 6.3：删除实例中的 Docker 支持文件
<a name="step-6-3-remove-docker-support-files-from-the-instance"></a>

如果您不想再在 Amazon EC2 实例上保留 Docker 容器、Docker 镜像和 Docker，但想要保留此实例，则可删除这些 Docker 支持文件，如下所示。

1. 从实例中删除 Docker 容器。为此，请在实例上将 ** `docker` ** 命令与 ** `stop` ** 和 ** `rm` ** 停止操作以及容器的用户可读名称一起运行。

   ```
   sudo docker stop cloud9
   sudo docker rm cloud9
   ```

1. 从实例中删除 Docker 映像。为此，请在实例上将 **`docker`** 命令与 **`image rm`** 操作和映像的标签一起运行。

   ```
   sudo docker image rm cloud9-image:latest
   ```

1. 删除可能仍存在的任何其他 Docker 支持文件。为此，请在实例上将 **`docker`** 命令与 **`system prune`** 操作一起运行。

   ```
   sudo docker system prune -a
   ```

1. 卸载 Docker。为此，请在实例上将 ** `yum` ** 命令与 ** `remove` ** 操作一起运行，以指定要卸载的 ** `docker` ** 程序包。

   对于 Amazon Linux：

   ```
   sudo yum -y remove docker
   ```

   对于 Ubuntu Server：

   ```
   sudo apt -y remove docker
   ```

   还可以删除之前创建的 `Dockerfile` 和 `authorized_keys` 文件。例如，在实例上运行 ** `rm` ** 命令。

   ```
   sudo rm /tmp/Dockerfile
   sudo rm /tmp/authorized_keys
   ```

### 步骤 6.4：终止实例
<a name="step-6-4-terminate-the-instance"></a>

要终止 Amazon EC2 实例，请参阅《Amazon EC2 用户指南》**中的[终止您的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)。