首页 > 其他分享 >docker 运行jar包

docker 运行jar包

时间:2023-07-04 09:22:14浏览次数:39  
标签:jar server project file 镜像 docker 运行

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


 

标签:jar,server,project,file,镜像,docker,运行
From: https://www.cnblogs.com/liyanxi/p/17523755.html

相关文章

  • 公共语言运行库(CLR)开发系列课程(3):COM Interop基础 学习笔记
    公共语言运行库(CLR)开发系列课程(3):COMInterop基础学习笔记  上章地址什么是COMComponentObjectModel组建对象模型 基于接口(Interface)接口=协议IID标识接口V-table虚表方式调用单继承 对象(Object)实现一个或者多个接口举例:IDispatch......
  • 组合框架:融合创新技术,实现一次编码多平台运行
    近年来,随着小程序技术及生态的发展,小程序应用已有超过App应用的势头。 根据Statista的数据,截至2021年底,全球移动应用商店上的应用数量约为6600万款。同期,据微信官方数据,截至2021年6月,微信小程序的月活跃用户超过13亿,并且在微信平台上有超过2000万个小程序。此外,除了微信小程......
  • jar-project 代码加壳加密工具【开源】
    开源地址:https://gitee.com/chejiangyi/jar-protect介绍java本身是开放性极强的语言,代码也容易被反编译,没有语言层面的一些常规保护机制,jar包很容易被反编译和破解。受classfinal(已停止维护)设计启发,针对springboot日常项目开发,重新编写安全可靠的jar包加壳加密技术,用于......
  • 解决Springboot项目打成jar包后获取resources目录下的文件失败的问题
    前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:classpathresource[xxxx]cannotberesolvedtoabsolutefilepathbecauseitdoesnotresideinthefilesystem:jar:file:xxxx.jar!/......
  • Docker
    1.docker的初识1.1为什么要用docker问题开发、测试、生产环境不统一,造成项目测试、部署时产生问题解决方案使用容器化技术,将环境和项目一起发送给测试、部署人员,测试人数和运维人员直接使用发过来的环境和项目进行操作,避免环境不统一产生的问题.1.2什么是dockerdocker......
  • Ubantu docker
    首先拉一个镜像:sudodockerpullubuntu:拉一个乌班图的镜像如何使用这个镜像:sudodockerrun-i-tubuntu/bin/bash:这样就进入了乌班图的一个终端输入ls可以查看目录:cdhome就是进入相应的home目录exit就是直接退出来sudodockerps:查询目前正在运行的所有容器su......
  • redis 用docker集群部署:三主三从
    要在CentOS7上使用Docker部署3个主Redis节点和3个从Redis节点,你可以按照以下步骤进行操作:安装Docker:首先,确保已经安装了Docker。可以执行以下命令来检查是否已安装Docker:dockerversion如果未安装Docker,请根据Docker官方文档的指导进行安装。创建网络:创建一个自定义的Docker网......
  • 深入docker(todo)
    2018年接触容器,已经有好几个年头,但目前停留在使用,维护,制作镜像,编排等,方方面面都涉及到,基本够用。看过一本华为写的深入书籍,感觉一般。计划花点时间系统研究下内部机制,从如下几块进行实践:1.容器技术:namespace,cgroups,aufs2.构造容器的本质3.构造镜像的本质4.容器网络的本质5.r......
  • [oeasy]python0070_动态类型_静态类型_编译_运行_匈牙利命名法
     动态类型_静态类型回忆上次内容 上次了解了帮助文档的生成开头的三引号注释可以生成帮助文档文档可以写成网页 python3本身也有在线的帮助手册 目前的程序提高了可读性   ​ 添加图片注释,不超......
  • [oeasy]python0070_动态类型_静态类型_编译_运行_匈牙利命名法
    动态类型_静态类型回忆上次内容上次了解了帮助文档的生成开头的三引号注释可以生成帮助文档文档可以写成网页python3本身也有在线的帮助手册目前的程序提高了可读性还有什么方法可以让程序更可读么?......