3

我有一个可以在本地创建的 Dockerised 节点服务器,当我通过 Docker 桌面应用程序按“播放”时,它将开始在我的本地主机浏览器上显示。

我正在尝试让相同的 Dockerised 节点服务器在 Fargate 上工作。首先,我推送到 AWS ECR 存储库,启动 Fargate 并添加集群、服务和任务。

我的问题是如何让 Fargate 执行相当于“播放”Docker 映像的操作,以便它启动并开始从 Fargate 服务器提供服务?

4

1 回答 1

3

我认为您正在寻找的是“任务”,这需要您创建任务定义,然后转到 ECS 集群的“任务”选项卡并单击“运行新任务”

整个步骤如下:

  1. 创建 ECR 存储库并将您的图像推送到其中(可选,图像可以在其他地方的公开可用存储库中)
  2. 创建 ECS 集群
  3. 创建一个 IAM 任务执行角色(可能是可选的,但建议使用,我认为只有当您从 ECR 中提取或想要将容器 STDOUT 写入 cloudwatch 日志时才需要此角色)。我相信这是在您在控制台中创建任务定义时自动创建的。
  4. 如果您的容器需要 AWS 权限(可选),请创建一个 IAM 任务角色。
  5. 创建一个描述您的容器规范的 ECS 任务定义,包括镜像的 URI 是什么:AWS ECR、Docker Hub、Quay.io 等。还包括环境变量和所需的 CPU/内存(这两个值是相互关联的并且确定的)可能不允许组合,例如 512M 内存和 4 核)。

然后,您可以通过单击 ECS 集群的“任务”选项卡上的“运行新任务”按钮来“推送播放”。您必须配置一些运行时参数,但它会一直运行直到进程退出或任务被删除。

此外,Cloudwatch Events 可以按计划或响应某些事件触发这些任务,它是 CLI 的一条线来触发此任务。

如果您想要一个始终运行的容器或一组容器(例如始终需要为访问者提供服务的网站),您可以使用 ECS 服务而不是任务,然后您可以利用自动缩放和更换失败的容器。

于 2020-01-30T21:53:15.747 回答