在 AWS ECS EC2 集群中运行 docker 镜像
Posted
技术标签:
【中文标题】在 AWS ECS EC2 集群中运行 docker 镜像【英文标题】:Run docker image inside AWS ECS EC2 Cluster 【发布时间】:2021-08-10 20:27:30 【问题描述】:我创建了一个启动类型为 EC2 的 AWS ECS 集群。基于 ec2 + windows 的集群。我必须在这个集群中运行 java 应用程序的 docker 映像。 我创建了基于 linux 的 docker 映像,但它在该 Windows 集群中不起作用。我收到以下错误: 状态原因CannotPullContainerError: 镜像操作系统“linux”不能在这个平台上使用
我的 docker 文件是:
FROM maven:3.6.1-jdk-8-alpine AS MAVEN_BUILD
复制./ ./
运行 mvn clean install -DskipTests
来自 openjdk:8
#VOLUME c:\Ctpl_VBA
ARG JAR_FILE=目标/*.jar 复制 --from=MAVEN_BUILD $JAR_FILE app.jar 曝光 8080 入口点 ["java","-jar","/app.jar"]
有什么方法可以在 AWS windows 集群中使用 docker 镜像运行我的 java 应用程序?
【问题讨论】:
【参考方案1】:您不能在与主机上的操作系统不同的操作系统上运行映像。容器不是硬件虚拟化。他们与主机共享内核。如果您尝试重新使用基于 Windows 的集群(用于其他 Windows 容器)来运行 Linux 容器,您应该使用 Fargate 启动类型启动您的 Linux 容器。 Fargate 是一个完全托管的计算引擎,无需部署 EC2 容量即可运行容器。目前它仅适用于 Linux 容器,它可以满足您的需求。
【讨论】:
以上是关于在 AWS ECS EC2 集群中运行 docker 镜像的主要内容,如果未能解决你的问题,请参考以下文章
AWS ECS 开发工具包。使用开发工具包为 ECS 集群注册新容器实例 (EC2)
AWS IAM 策略拒绝对自动扩展组或 ECS 集群内的任何 EC2 实例的权限