千家信息网

Docker中怎么部署可执行jar包

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Docker中怎么部署可执行jar包,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法一、直接构建jar包运行的镜像将项
千家信息网最后更新 2026年11月02日Docker中怎么部署可执行jar包

Docker中怎么部署可执行jar包,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

方法一、直接构建jar包运行的镜像

  1. 将项目打包,上传到服务器的指定目录

  2. 在该目录下创建Dockerfile文件

vi Dockerfile
  1. Dockerfile写入如下指令

FROM java:8MAINTAINER demoADD demo-0.0.1-SNAPSHOT.jar demo.jarEXPOSE 8080ENTRYPOINT ["java","-jar","demo.jar"]

其中指令的含义:

  • FROM:基础镜像,FROM java:8 指的是拉取一个jdk1.8的镜像

  • MAINTAINER:作者,MAINTAINER demo 作者是demo

  • ADD: 将打包的可执行jar包复制到镜像中并重命名(用 COPY 也可),ADD demo-0.0.1-SNAPSHOT.jar demo.jar将demo-0.0.1-SNAPSHOT.jar 复制到镜像中并重命名为 demo.jar

  • EXPOSE: 声明端口

  • ENTRYPOINT : 容器启动之后执行的命令,java -jar demo.jar 即启动jar

  1. 创建好Dockerfile文件之后,执行命令 构建镜像

docker build -t my-demo .

注意最后的 . 表示Dockerfile在当前文件目录下。my-demo表示构建的镜像,构建成功后可以使用docker images命令查看镜像。

  1. 镜像构建成功之后,就可以运行容器

docker run -d --restart=always --name demo -p 8080:8080 my-demo

其中参数的含义:

  • -d :后台运行容器,并返回容器ID

  • -restart=always :容器在停止或服务器开机之后会自动重新启动

  • -p :指定端口映射

  • 最后的 my-demo指定镜像

  1. 启动容器后可以使用 docker ps命令查看启动的容器

  2. docker logs --tail 300 -f 容器id ,可以查看服务的日志。

  3. 如果想更新jar包,只需要使用docker cp demo-0.0.1-SNAPSHOT.jar 容器ID:/demo.jar,就可以将demo-0.0.1-SNAPSHOT.jar拷贝进容器并重命名,然后 docker restart 容器ID 重启容器。


方法二、基于jdk镜像运行容器

方法一是直接构建了一个运行jar包的镜像,这里还有另外一种方式,基于jdk镜像运行容器。

  1. 在服务器中拉取jdk1.8的镜像

docker pull jdk8
  1. 创建目录,并将jar包上传到该目录

 cd /server/ mkdir deploy/jar
  1. 运行容器:在运行容器的命令里指定包的运行

 docker run -d \--restart=always \-v /server/deploy/jar:/jar-v /server/logs/demo:/mnt/logs/demo \-p 7778:7778 \--name demo \jdk8 /usr/bin/java -jar \-Duser.timezone=GMT+08 \/jar/demo-1.0.jar

上面命令的说明:

  • -Duser.timezone :指定时区

  • jdk8 /usr/bin/java -jar :执行jar包

  • /jar/demo-1.0.jar :指定需要执行的jar包的位置。

以后发布,只需要把宿主机目录里的jar包替换掉,重启容器。

方法三:基于Maven插件部署

  1. 修改Docker配置开启允许远程访问 Docker 的功能,开启方式很简单,修改 /usr/lib/systemd/system/docker.service 文件,加入如下内容:

    -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock


    配置完成后,保存退出,然后重启 Docker:

    systemctl daemon-reload    service docker restart


  2. 在SpringBoot项目的目录下新建Dockerfile文件

FROM java:8VOLUME /tmpADD target/docker-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-jar","/app.jar"]
  1. 配置Maven插件:在pom.xml文件中添加如下插件:

    com.spotifydocker-maven-plugin1.2.0build-imagepackagebuildhttp://192.168.66.131:2375javaboy/${               project.artifactId}${               project.version}true${               project.basedir}/${               project.build.directory}${               project.build.finalName}.jar


这个插件的配置说明:

  • 首先在 execution 节点中配置当执行 mvn package 的时候,顺便也执行一下 docker:build

  • 然后在 configuration 中分别配置 Docker 的主机地址,镜像的名称,镜像的 tags,其中 dockerDirectory 表示指定 Dockerfile 的位置。

  • 最后 resource 节点中再配置一下 jar 的位置和名称即可。

  1. 执行命令

mvn clean package docker:build

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

容器 镜像 运行 命令 目录 配置 文件 插件 方法 服务 位置 服务器 成功 作者 内容 名称 含义 指令 方式 端口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会 科技互联网项目 工业互联网科技新基建 广州宏创互联网科技 智慧科技互联网 奔汉互联网科技 互联网科技素材视频竖屏 山东吉时兔互联网科技有限公司 智腾互联网科技有限公司 宜昌元轩互联网科技有限公司 互联网科技和信息 允成互联网科技有限公司融资 深圳艾果互联网通讯科技 伍佰万互联网科技怎么赚钱 杭州披云加互联网科技有限公司 中天科技中国工业互联网 半导体行业属于互联网高科技类吗 银川新华互联网科技学校是国营吗 第三届互联网大会安防黑科技 互联网企业和网络科技有限公司 耶加雪菲 互联网 的科技创新 湖南洣水互联网科技有限公司扣款 中国航天科技大学国际工业互联网 坤平互联网科技 美国互联网科技公司 互联网科技手机排行榜 互联网界的黑科技 第三届互联网大会安防黑科技 恒生科技互联网指数十大成分股
0