如何在 Fargate 中制作 Docker 图像 运行

How to make a Docker image run in Fargate

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

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

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

我认为您正在寻找的是 "tasks",这需要您创建任务定义,然后转到 ECS 集群的 "Task" 选项卡并单击 "Run New Task"

全部步骤是:

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

然后您可以 "Just Push Play" 单击 ECS 集群 "Tasks" 选项卡上的 "Run New Task" 按钮。您必须配置一些 运行 时间参数,但它只会 运行 直到进程退出或任务被删除。

此外,Cloudwatch Events 可以按计划或响应特定事件触发这些任务,并且它是 CLI 中触发此任务的单行程序。

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