本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Lightsail 容器服务构建和测试 Docker 镜像
通过 Docker,您可以构建、运行、测试和部署基于容器的分布式应用程序。Amazon Lightsail 容器服务使用部署中的 Docker 容器镜像来启动容器。
在本指南中,我们将介绍如何使用 Docker 文件在本地机器上创建容器镜像。创建镜像后,您可以将其推送到 Lightsail 容器服务以进行部署。
要完成本指南中的步骤,您应基本了解 Docker 是什么及其工作方式。有关 Docker 的更多信息,请参阅 Docker 是什么?
内容
步骤 1:完成先决条件
在开始之前,您必须安装创建容器所需的软件,然后将其推送到 Lightsail 容器服务。例如,您必须安装并使用 Docker 来创建和构建容器镜像,然后便可以用于您的 Lightsail 容器服务。有关更多信息,请参阅 。安装软件以管理 Amazon Lightsail 容器服务的容器镜像。
步骤 2:创建 Docker 文件并构建容器镜像
完成以下过程以创建 Docker 文件并用其构建 mystaticwebsite Docker 容器镜像。容器映像将用于在 Ubuntu 的 Apache Web 服务器上托管的简单静态网站。
-
在本地机器上创建
mystaticwebsite文件夹,以在其中存储 Docker 文件。 -
在您刚创建的文件夹中创建 Docker 文件。
Docker 文件不使用文件扩展名,例如
.TXT。完整文件名为Dockerfile。 -
根据您希望如何配置容器镜像,复制以下代码块之一,并将其粘贴到 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"]
-
-
打开命令提示符或终端窗口,然后将目录更改为要存储 Docker 文件的文件夹。
-
输入以下命令以使用文件夹中的 Docker 文件构建容器镜像。此命令将构建一个名为
mystaticwebsite的新 Docker 容器镜像。docker build -t mystaticwebsite .您应该看到一条确认镜像已成功构建的消息。
-
输入以下命令以查看本地机器上的容器镜像。
docker images --filter reference=mystaticwebsite您应看到类似于以下示例的结果,其中显示新创建的容器镜像。
您新构建的容器镜像已准备好进行测试,可使用它在本机计算机上运行新容器。继续本指南的下一部分步骤 3:运行新容器镜像。
步骤 3:运行新容器镜像
完成以下步骤以运行您创建的新容器镜像。
-
在命令提示符或终端窗口中,输入以下命令以运行您之前在本指南的步骤 2:创建 Docker 文件并构建容器镜像部分中构建的容器镜像。
-p 8080:80选项将容器上公开的端口 80 映射到本地机器上的端口 8080。-d选项指定容器应在分离模式下运行。docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest -
输入以下命令以查看正在运行的容器。
docker container ls -a您应看到类似于以下示例的结果,其中显示新运行的容器。
-
要确认容器已启动并正在运行,请打开一个新的浏览器窗口并浏览到
http://localhost:8080。您应看到类似于以下示例的消息。这确认您的容器已启动并在本地机器上运行。
您新构建的容器镜像已准备好被推送到您的 Lightsail 账户,以便您可以将其部署到 Lightsail 容器服务。有关更多信息,请参阅在 Amazon Lightsail 服务中推送和管理容器镜像。
(可选)步骤 4:清除本地机器上运行的容器
既然您已经创建了可以推送到 Lightsail 容器服务的容器镜像,按照本指南中的步骤,现在可以清除本地机器上运行的容器。
完成以下步骤以清除本地计算机上运行的容器:
-
运行以下命令以查看本地机器上运行的容器。
docker container ls -a您应该看到类似下面的结果,其中列出了本地计算机上运行的容器的名称。
-
运行以下命令可删除之前在本指南中创建的运行中容器。这会强制停止容器,并永久删除容器。
docker container rm <ContainerName> --force在命令中,将 < ContainerName > 替换为要停止的容器的名称,然后将其删除。
示例:
docker container rmmystaticwebsite--force现在可以删除据本指南创建的容器。
创建容器镜像后的后续步骤
创建容器镜像后,在准备部署容器镜像时将其推送到 Lightsail 容器服务。有关更多信息,请参阅管理 Lightsail 容器服务镜像。