Lightsail 容器服务映像 - Amazon Lightsail

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

Lightsail 容器服务映像

通过 Docker,您可以构建、运行、测试和部署基于容器的分布式应用程序。Amazon Lightsail 容器服务使用部署中的 Docker 容器映像来启动容器。

在本指南中,我们将介绍如何使用 Docker 文件在本地机器上创建容器镜像。创建映像后,您可以将其推送到 Lightsail 容器服务以进行部署。

要完成本指南中的步骤,您应基本了解 Docker 是什么及其工作方式。有关 Docker 的更多信息,请参阅 Docker 是什么?Docker 概述

内容

步骤 1:完成先决条件

在开始之前,您必须安装创建容器所需的软件,然后将其推送到 Lightsail 容器服务。例如,您必须安装并使用 Docker 来创建和构建容器映像,然后便可以用于您的 Lightsail 容器服务。有关更多信息,请参阅安装软件以管理 Amazon Lightsail 容器服务的容器映像

步骤 2:创建 Docker 文件并构建容器镜像

完成以下过程以创建 Docker 文件并用其构建 mystaticwebsite Docker 容器镜像。容器映像将用于在 Ubuntu 的 Apache Web 服务器上托管的简单静态网站。

  1. 在本地机器上创建 mystaticwebsite 文件夹,以在其中存储 Docker 文件。

  2. 在您刚创建的文件夹中创建 Docker 文件。

    Docker 文件不使用文件扩展名,例如 .TXT。完整文件名为 Dockerfile

  3. 根据您希望如何配置容器镜像,复制以下代码块之一,并将其粘贴到 Docker 文件中:

    • 如果您想创建一个包含 Hello World 消息的简单静态网站容器镜像,则复制以下代码块并将其粘贴到 Docker 文件中。此代码示例使用 Ubuntu 18.04 镜像。RUN 指令更新程序包缓存,并安装和配置 Apache,然后将 Hello World 消息打印到 Web 服务器的文档根目录。EXPOSE 指令在容器上公开端口 80,CMD 指令启动 Web 服务器。

      FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Open port 80 EXPOSE 80 # Start Apache service CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
    • 如果您想为静态网站容器镜像使用您自己的 HTML 文件集,请在存储 Docker 文件的相同文件夹中创建 html 文件夹。然后把您的 HTML 文件放在该文件夹中。

      在您的 HTML 文件位于 html 文件夹中之后,复制以下代码块并将其粘贴到 Docker 文件中。此代码示例使用 Ubuntu 18.04 镜像。RUN 指令更新程序包缓存,并安装和配置 Apache。COPY 指令将 html 文件夹的内容复制到 Web 服务器的文档根目录。EXPOSE 指令在容器上公开端口 80,CMD 指令启动 Web 服务器。

      FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Copy html directory files COPY html /var/www/html/ # Open port 80 EXPOSE 80 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
  4. 打开命令提示符或终端窗口,然后将目录更改为要存储 Docker 文件的文件夹。

  5. 输入以下命令以使用文件夹中的 Docker 文件构建容器镜像。此命令将构建一个名为 mystaticwebsite 的新 Docker 容器镜像。

    docker build -t mystaticwebsite .

    您应该看到一条确认镜像已成功构建的消息。

  6. 输入以下命令以查看本地机器上的容器镜像。

    docker images --filter reference=mystaticwebsite

    您应看到类似于以下示例的结果,其中显示新创建的容器镜像。

    Docker 镜像命令的结果

    您新构建的容器镜像已准备好进行测试,可使用它在本机计算机上运行新容器。继续本指南的下一部分步骤 3:运行新容器镜像

步骤 3:运行新容器镜像

完成以下步骤以运行您创建的新容器镜像。

  1. 在命令提示符或终端窗口中,输入以下命令以运行您之前在本指南的步骤 2:创建 Docker 文件并构建容器镜像部分中构建的容器镜像。-p 8080:80 选项将容器上公开的端口 80 映射到本地机器上的端口 8080。-d 选项指定容器应在分离模式下运行。

    docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
  2. 输入以下命令以查看正在运行的容器。

    docker container ls -a

    您应看到类似于以下示例的结果,其中显示新运行的容器。

    Docker 容器命令的结果
  3. 要确认容器已启动并正在运行,请打开一个新的浏览器窗口并浏览到 http://localhost:8080。您应看到类似于以下示例的消息。这确认您的容器已启动并在本地机器上运行。

    在 Docker 容器上运行的静态网站

    您新构建的容器映像已准备好被推送到您的 Lightsail 账户,以便您可以将其部署到 Lightsail 容器服务。有关更多信息,请参阅推送和管理 Amazon Lightsail 容器服务的容器镜像

(可选)步骤 4:清除本地机器上运行的容器

既然您已经创建了可以推送到 Lightsail 容器服务的容器映像,按照本指南中的步骤,现在可以清除本地机器上运行的容器。

完成以下步骤以清除本地计算机上运行的容器:

  1. 运行以下命令以查看本地机器上运行的容器。

    docker container ls -a

    您应该看到类似下面的结果,其中列出了本地计算机上运行的容器的名称。

    Docker 容器命令的结果
  2. 运行以下命令可删除之前在本指南中创建的运行中容器。这会强制停止容器,并永久删除容器。

    docker container rm <ContainerName> --force

    在该命令中,将 <ContainerName> 替换为要停止并删除的容器的名称。

    示例:

    docker container rm mystaticwebsite --force

    现在可以删除据本指南创建的容器。

创建容器镜像后的后续步骤

创建容器镜像后,可在做好部署准备时将其推送到 Lightsail 容器服务。有关更多信息,请参阅管理 Lightsail 容器服务映像