docker 运行jar包

发布时间 2023-07-04 09:20:02作者: ly772186472
https://juejin.cn/post/6844904167920975886
1.2 拉取Java镜像

docker pull openjdk:8u252

2. 运行Jar文件

Jar文件的存放路径为/project/file-server

 执行命令生成容器启动Jar

docker run -d -p 9000:9000 -v /project/file-server:/project/file-server --name file-server openjdk:8u252 java -jar /project/file-server/FileServer.jar
  • -d:后台运行
  • -p:端口映射
  • -v /project/file-server:/project/file-server: 将宿主机的路径映射到容器中
  • --name: 定义生成容器的名称

查看容器是否启动成功

3. 与传统的运行方式对比

使用传统的方式运行Jar文件,那么你需要在服务器上安装Java环境,再配置环境变量,最后再使用java -jar命令运行Jar包。

而使用Java镜像这种方式运行Jar文件,相当于把安装Java环境和配置环境变量这个工作交给了Java镜像,其他的并没有什么区别

方法二:利用Docker创建镜像运行Jar文件

1. 创建Dockerfile文件

FROM java:8
MAINTAINER 3795
ADD xboot-fast-1.0-SNAPSHOT.jar xboot-server.jar
COPY config config
EXPOSE 9000
ENTRYPOINT ["java", "-jar", "xboot-server.jar"]
  • FROM: 基础镜像,基于jdk8镜像开始
  • MAINTAINER:作者
  • ADD:将jar文件添加(复制)到镜像内,FileServer.jar源jar文件,file-server.jar复制得到的jar文件。
  • COPY: 将应用的配置文件也拷贝到镜像中。
  • EXPOSE:声明端口
  • ENTRYPOINT:docker启动时,运行的命令,这里容器启动时直接运行jar服务。
在添加或复制文件到镜像中时,如果不指定目标路径,则默认将文件添加到容器的/路径下。
 

2. 构建镜像

先看Dockerfile所在的目录

 在当前目录下执行命令:

docker build -t file-server:test .
  • file-server: 镜像的名称
  • test: 镜像的tag,如果不写,则默认为latest
  • .: 这个.一定不能忘记,最后的.代表本次执行的上下文路径,ADD FileServer.jar file-server.jar,中间的FileServer.jar在哪里,就是根据这个.确定的,在上述Dockerfile,表示将当前文件夹下的FileServer.jarconfig文件夹添加到容器中

   运行镜像: 

docker run -d --name file-server-test -p 9000:9000 -v /project/file-server:/project/file-server file-server:test

  问题:

failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount4208394986/Dockerfile: no such file or directory

 没有找到 dockerFile 文件

 docker build -f /home/dockerProject/DockerFile . 

docker build -f /home/dockerProject/DockerFile . -t xboot-server:xboot