首页 > 解决方案 > 在 AWS ECS EC2 集群中运行 docker 镜像

问题描述

我创建了一个启动类型为 EC2 的 AWS ECS 集群。基于 ec2 + windows 的集群。我必须在这个集群中运行 java 应用程序的 docker 映像。我创建了基于 linux 的 docker 映像,但它在该 Windows 集群中不起作用。我收到以下错误:状态原因 CannotPullContainerError: image operating system "linux" cannot be used on this platform

我的码头文件是:

FROM maven:3.6.1-jdk-8-alpine AS MAVEN_BUILD

复制 。/ 。/

运行 mvn clean install -DskipTests

从openjdk:8

#VOLUME c:\Ctpl_VBA

ARG JAR_FILE=target/*.jar COPY --from=MAVEN_BUILD ${JAR_FILE} app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"]

有什么方法可以使用 AWS Windows 集群中的 docker 映像运行我的 java 应用程序?

标签: javadockeramazon-ec2amazon-ecs

解决方案


您不能基于与主机上的操作系统不同的操作系统运行映像。容器不是硬件虚拟化。他们与主机共享内核。如果您尝试重新使用基于 Windows 的集群(用于其他 Windows 容器)来运行 Linux 容器,您应该使用 Fargate 启动类型启动您的 Linux 容器。Fargate 是一个完全托管的计算引擎,无需部署 EC2 容量即可运行容器。目前它仅适用于 Linux 容器,它可以满足您的需求。


推荐阅读