运行 图像中的 docker jar 文件

Run jar file in docker image

我用 java 创建了一个 Docker 图像,并将 jar 文件复制到图像中。 我的 Docker 文件是:

FROM anapsix/alpine-java
MAINTAINER myNAME 
COPY testprj-1.0-SNAPSHOT.jar /home/testprj-1.0-SNAPSHOT.jar
RUN java -jar /home/testprj-1.0-SNAPSHOT.j

执行以下命令后:

docker build -t imageName.

在控制台中,我看到了应用程序的输出,一切正常。 但是当我停止图像时,我不知道如何再次运行图像? 当我执行以下命令时:

docker run -i -t imageName java -jar /home/testprj-1.0-SNAPSHOT.jar

应用程序再次 运行s,但在我的 Docker 文件中我已经编写了此命令。如何在没有此命令的情况下 运行 图像并让应用程序自动 运行?

镜像和容器是有区别的。

  • 映像将构建一次
  • 您可以从镜像启动容器

你的情况:

更改图片:

FROM anapsix/alpine-java
MAINTAINER myNAME 
COPY testprj-1.0-SNAPSHOT.jar /home/testprj-1.0-SNAPSHOT.jar
CMD ["java","-jar","/home/testprj-1.0-SNAPSHOT.jar"]

建立你的形象:

docker build -t imageName .

现在在容器中调用您的程序:

docker run --name myProgram imageName

现在通过重新启动容器来重新启动您的程序:

docker restart myProgram

你的程序改了吗?重建图像!:

docker rmi imageName
docker build -t imageName .

这可能与您的要求不完全相同,但是如果您只是需要运行一个 JAR(而不是它只是一个更大的自定义容器的一部分) ) 我喜欢这种将 volume/folder 映射到 JAR 并使用标准上游图像 运行 连接它的方法:

docker run --rm -it -v /home/me/folderHoldingJar:/home:Z java:latest /bin/bash -c '/usr/bin/java -jar /home/theJarFile.jar'

如果 JAR 需要显示 GUI,您甚至可以添加 some additional args