如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

2022年 10月 12日 80.8k 0

容器技术简化了您从本地环境到云或本地数据中心构建、测试和部署软件的方式。但是随着使用容器技术构建应用程序的好处,在构建多容器应用程序时存在手动启动和停止每个容器的问题。

为了解决这个问题,Docker Inc 创建了Docker Compose。您可以使用 Docker Compose 来简化多容器应用程序的运行,只需两个命令;docker-compose updocker-compose down

在本文中,您将学习

  • Amazon EC2 是什么,
  • 如何创建并连接到 Amazon EC2 实例,以及
  • 如何在 EC2 上部署 Docker compose 应用程序

先决条件

要继续阅读本文,您必须具备以下条件:

  • 终端基础知识。
  • 一些使用 Docker 和 Docker Compose 的经验。
  • 一个 AWS 账户 —在此处了解如何创建一个。

什么是亚马逊 EC2?

Amazon Elastic Compute Cloud (EC2) 为Amazon Web Services (AWS) 云中的几乎所有工作负载提供安全、可调整大小和可扩展的计算能力。通过使用 Amazon EC2,您可以消除预先投资硬件的开销,从而可以专注于更快地开发和部署您的应用程序。

借助 Amazon EC2,您可以根据需要启动任意数量的虚拟服务器(实例)、配置安全性和网络以及管理存储。此外,Amazon EC2 使您能够轻松地向上或向下扩展您的应用程序,以应对需求变化或流行高峰,从而减少预测流量的需要。

创建并连接到 Amazon EC2 实例

创建 AWS 账户后,您可以通过以下步骤创建并连接到 Amazon EC2 实例:

  • 为实例选择所需的区域
  • 导航到 EC2 控制台
  • 启动实例
  • 通过 SSH 从本地计算机连接到实例

选择您想要部署的区域

要在您的 AWS 控制台上选择一个区域,请单击下图右上角注释的下拉列表,然后选择您想要的区域。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

您可能会问,“我怎么知道哪个地区最适合我的申请?” 要了解部署应用程序的最佳区域,请查看这篇关于“为工作负载选择区域时要考虑的事项”的文章。

导航到 EC2 控制台

选择所需的 AWS 区域后,要转到 EC2 控制台,请在搜索框中搜索“EC2”,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

到达 EC2 控制台后,找到Launch Instance按钮并单击它以启动新的 EC2 实例启动流程。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

启动实例

在 EC2 实例启动流程中,您需要使用以下内容配置您的实例:

应用程序和操作系统映像(Amazon 系统映像): Amazon 系统映像**(**AMI) 是一个模板,其中包含启动实例所需的软件配置(操作系统、应用程序服务器和应用程序)。

本文将使用具有下图所示配置的 Linux Ubuntu Server 22.04。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

实例类型: ****实例类型是 CPU、内存、存储和网络容量的组合。有多种 EC2 实例类型可让您灵活地为您的应用程序选择适当的资源组合。本文将使用t2.micro,其 CPU 和内存如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

  1. 密钥对(登录):您可以使用密钥对从本地计算机远程安全地连接到您的实例。要创建密钥对,请单击创建新密钥对,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

单击Create new key pair后,您将看到一个弹出窗口。在弹出窗口中,为您的密钥对命名并将其余配置保留为默认配置(如果您的本地计算机是 Windows 操作系统,请选择.ppk私钥文件格式),然后单击创建密钥对。

点击Create key pair后,会自动下载一个.pem私钥文件到你的电脑上;将私钥存储在计算机上安全且可访问的位置。您稍后将需要它来连接到您的实例。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

  1. 网络设置:您可以将网络设置保留为默认设置。如下图所示的默认网络设置使用:
  • 您的 AWS 账户的默认VPC 和子网,并启用为您的实例自动分配公共地址。
  • 它还会创建一个新的安全组,即一组控制实例流量的防火墙规则。默认是允许来自任何地方的 SSH 流量;这适用于本文,但在生产用例中,您应该设置更严格的规则。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

  1. 配置存储:您可以将存储配置保留为本文的默认配置。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

最后的配置是高级设置,您可以忽略它们,因为它们超出了本文的范围。要了解有关它们的更多信息,请单击下图所示的信息文本。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

完成上述所有配置后,单击启动实例并等待几分钟让您的实例启动,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

然后单击上图中的查看所有实例并选择下图中的实例。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

连接到您的 Amazon EC2 实例

选择您的 EC2 实例后,在顶部(如下图所示)单击连接。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

单击连接后,您将看到一个页面,其中包含连接到您的实例的选项。本文将使用 SSH 客户端选项。.pem使用在创建密钥对时下载的私钥,按照您在页面上看到的步骤进行操作,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

完成上述步骤后,您应该连接到您的实例,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

接下来,您将部署一个演示多容器 Docker Compose 应用程序,该应用程序具有 React 前端、Node.js 后端和 MongoDB 数据库容器,并使其可在 Internet 上访问。

在 Amazon EC2 上部署多容器 Docker Compose 应用程序

在部署 Docker Compose 应用程序之前,您需要:

  • 首先在您的 EC2 实例上安装 Docker Engine 和 Docker compose。
  • 然后在本文中,在您的实例上从 Github 克隆演示 Todo Docker Compose 应用程序
  • 然后部署应用程序

在 Ubuntu EC2 实例上安装 Docker 引擎 安装 Docker 引擎

的最快方法是使用get.docker.comget-docker.sh上的 bash 脚本。运行以下命令以在您的 EC2 实例上下载脚本。

$ curl -fsSL https://get.docker.com -o get-docker.sh

运行上述命令后,确认它下载了get-docker.sh如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

要运行脚本,请运行以下命令:

$ sh get-docker.sh

一段时间后,Docker 将安装在 Ubuntu EC2 实例上。要确认安装运行$ docker --``version,您应该会看到 Docker 版本,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

如果您使用不同的 AMI,请查看Docker 安装文档以了解如何在您选择的 AMI 上进行安装。

在 Ubuntu EC2 实例

上安装 Docker Compose 现在要安装 Docker Compose,运行以下命令从 Github 获取版本:\

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

然后使用以下命令使其可执行:

$ sudo chmod +x /usr/local/bin/docker-compose

完成后,当您运行时$ docker-compose -v,您应该会看到刚刚安装的版本,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

克隆演示 Docker Compose 应用
程序 您将部署的多容器 todo 应用程序是Awesome Docker Compose Github 存储库示例之一。要访问应用程序,请使用以下命令在您的实例上克隆存储库:

$ git clone https://github.com/docker/awesome-compose.git

克隆项目后,运行以下命令切换到react-express-mongodbtodo 应用程序所在的目录:

$ cd awesome-compose/react-express-mongodb

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

进入项目目录后,要使用上面注释的文件启动容器,请compose.yaml运行:

$ docker compose up -d

在 Docker 拉取镜像并创建网络以供容器相互通信之后,您将看到如下图所示的输出。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

要确认 3 个容器正在运行,运行$ docker ps,您应该会看到类似于下图的输出。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

接下来,您将测试部署以确保 todo 应用程序正常工作。

测试您的部署

您刚刚部署的应用程序在端口上进行对话,3000但如果您3000使用 EC2 实例的公共地址访问端口,您将无法查看它。这是因为当前仅允许来自 SSH 的入站流量的安全组设置。

要启用查看您的应用程序,在 EC2 实例控制台上,选择您的 EC2 实例,移动到安全选项卡,然后单击安全组,如下图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

单击安全组后,在下一个菜单中,单击Edit Inbound rules添加允许通过端口入站流量的规则3000

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

然后,添加规则,如下面的屏幕截图所示。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

完成后,当您访问 Todo 应用程序时,your_instance_public_ip:3000您应该会看到如下图所示的 Todo 应用程序。

如何在 Amazon EC2 上部署多容器 Docker Compose 应用程序

结论

在本文中,您了解了 Amazon EC2 是什么、如何创建和连接到 Amazon EC2 实例以及如何在 EC2 上部署 Docker compose 应用程序。

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论