代码改变世界

docker 运行jar包

2023-07-04 09:13  ly772186472  阅读(2507)  评论(0编辑  收藏  举报
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 l666y
ADD xboot-fast-1.0-SNAPSHOT.jar xboot-server.jar
COPY application.yml application.yml
EXPOSE 8888
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 -f /home/door_lock/DockerFile . -t xboot-server:xboot
  • xboot-server: 镜像的名称
  • test: 镜像的tag,如果不写,则默认为latest
  • .: 这个.一定不能忘记,最后的.代表本次执行的上下文路径,ADD FileServer.jar file-server.jar,中间的FileServer.jar在哪里,就是根据这个.确定的,在上述Dockerfile,表示将当前文件夹下的FileServer.jarconfig文件夹添加到容器中

   运行镜像: 

 docker run -d --name xboot-server-online  -v /home/door_lock/application.yml:/home/door_lock/      -p 8888:8888 -p 3389:3389 xboot-server:xboot

  问题:

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

 

Docker日志位置

Docker容器的日志存储在/var/lib/docker/containers目录下。

每个容器都有一个唯一的ID,容器日志文件名称以该ID开头,并以标准输出输出到Docker日志文件中。

可以使用Docker logs命令查看指定容器的日志。通过添加--tail参数可以指定输出最新的日志行数