当前位置: 首页 > 面试题库 >

在Docker映像中运行jar文件

宇文智敏
2023-03-14
问题内容

我使用Java创建了一个Docker映像,并将jar文件复制到该映像中。我的Dockerfile是:

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

该应用程序再次运行,但是在我的Dockerfile中,我已经编写了此命令。如何在不使用此命令的情况下运行映像并使应用程序自动运行?


问题答案:

图像和容器之间有区别。

  • 图片将一次生成
  • 您可以从图片启动容器

在您的情况下:

更改您的图片:

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 .


 类似资料:
  • 问题内容: 我有一个Docker映像,它是一个node.js应用程序。该应用程序从本地运行的Redis检索一些配置值。因此, 我试图在Docker映像内的同一容器内安装和运行Redis。 如何扩展Docker文件并在其中配置Redis? 到目前为止,Dockerfile如下: 从节点:碳 WORKDIR / app COPY package.json / app 运行npm安装 复制。/ app

  • 我有一个Docker映像,它是一个Node.js应用程序。应用程序从本地运行的Redis检索一些配置值。因此,我试图在Docker映像的同一容器中安装和运行Redis。 我如何扩展Docker文件并在其中配置Redis? 截至目前,Dockerfile如下所示:

  • 问题内容: 我正在尝试在Ubuntu容器中下载Debian软件包,如下所示: 我懂了 我已经安装了docker,如下所示: 如何下载文件? 问题答案: 您需要先安装它。创建一个新的,并在其中安装wget: 然后,构建该图像: 最后,运行它:

  • 我只能在带有docker预览版的macbook air m1中播放,并且我无法通过docker-compose文件运行8.0.22版的mysql映像。 docker-撰写集 我运行的命令是: 我怎样才能解决这个问题?

  • 我编写docker文件是为了运行jar文件,而它并没有创建日志文件,请参阅下面的控制台是我的docker文件