当前位置:

首页 > 编程开发 > docker怎么部署SpringBoot及替换jar包

docker怎么部署SpringBoot及替换jar包

Docker Desktop macOS版
Docker Desktop macOS版

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

立即下载
Mac 2026-10-13
数据库 编程开发 Desktop 开发工具 服务器管理

工程目录dockerfile文件创建dockerfile文件,后面会用到。文件部署在服务器新建/data/docker/hellolearn文件夹(文件路径可自定义),将maven打包好的jar包和上文中创建的dockerfile文件复制到服务器新建的文件夹(/data/docker/hellolearn)。生成镜像dockerbuild-thellolearn.dockerbuild-t镜像名称:标签dockerfile的相对位置,点号代表当前目录,不写tag默认是latest。启动容器dockerru

本文目录

    工程目录

    docker怎么部署SpringBoot及替换jar包

    dockerfile文件

    创建dockerfile文件,后面会用到。

    文件部署

    在服务器新建/data/docker/hellolearn文件夹(文件路径可自定义),将maven打包好的jar包和上文中创建的dockerfile文件复制到服务器新建的文件夹(/data/docker/hellolearn)。

    docker怎么部署SpringBoot及替换jar包

    生成镜像

    docker build -t hellolearn .

    docker build -t 镜像名称:标签 dockerfile的相对位置,点号代表当前目录,不写tag默认是latest。

    docker怎么部署SpringBoot及替换jar包

    启动容器

    docker run -d -p 8301:8301 --name hellolearn hellolearn

    docker start hellolearn

    -d参数是让容器后台运行;--name为指定容器的名称;-p 是做端口映射,此时将服务器中的8301(冒号前的端口)端口映射到容器中的8301(冒号后的端口)端口(application.properties配置的是8301)

    访问web

    docker怎么部署SpringBoot及替换jar包

    jar包映射部署

    按照上文的步骤已足可以轻松应对docker部署springboot的全流程。但是这样在启动容器后,每次需更新jar包时,都得重新制作镜像,再重新制作容器。流程及其繁琐,效率极低。那如何在不更新镜像或者容器的前提下直接更新jar包完成部署呢?

    5.1 更新dockerfile

    最后一行 entrypoint ["java","-jar","/data/learn-web-0.0.1-snapshot.jar"] 会运行容器里/data目录下的learn-web-0.0.1-snapshot.jar文件。

    5.2 使用docker build命令构建镜像

    docker build -t hellolearn .

    5.3 创建&启动容器

    docker run --name hellolearn -it -v /data/docker/newhellolearn/package:/data -d -p 8301:8301 hellolearn

    -v 宿主机目录关联容器目录。这样宿主机的/data/docker/newhellolearn/package目录就与docker的/data目录进行映射。

    这样的话,当jar包发生变动时,直接更新宿主机的/data/docker/newhellolearn/package目录下的jar包即可,更新jar包之后需要将容器重启一下。

    脚本部署

    通过jar包部署方式引起一个问题,若jar包名字发生变化,比如版本号变化(learn-web-0.0.1-snapshot.jar-->>learn-web-1.0.1-snapshot.jar)。需要怎么处理呢?下面就介绍第三种通过脚本部署的方式。

    6.1 创建hellolearn.sh文件

    java -jar /data/learn-web-0.0.1-snapshot.jar

    将hellolearn.sh上传到/data/docker/hellolearn/scriptdeploy/package,这个文件夹路径可以自定义,记住这个文件夹路径,后面还会用到。

    6.2 添加脚本执行权限

    chmod +x hellolearn.sh

    6.3 创建dockerfile

    cmd ["sh","-c","/data/hellolearn.sh"] 表示在容器启动时启动6.1中创建的hellolearn.sh脚本。

    注意最后一条命令上文中都是entrypoint,在脚本部署中改成了cmd,至于entrypoint和cmd的具体区别感兴趣的可以了解一下。

    6.4 上传jar包

    将jar包放入hellolearn.sh的同一个文件夹目录,即/data/docker/hellolearn/scriptdeploy/package,创建容器时再将该目录(宿主机目录)与容器的/data目录进行映射。。

    6.5 文件目录结构图

    docker怎么部署SpringBoot及替换jar包

    这里的目录结构不知道大家晕不晕,上传一张我这宿主机的目录结构图,一目了然。

    6.6 创建镜像

    docker build -t hellolearn-script .

    末尾的点号代表当前目录,所以生成镜像的命令需要在dockerfile所在的目录执行。

    6.7 创建&启动容器

    docker run --name hellolearn-script -it -v /data/docker/hellolearn/scriptdeploy/package:/data -d -p 8302:8301 hellolearn-script

    docker start hellolearn-script

    将宿主机的/data/docker/hellolearn/scriptdeploy/package目录与容器的/data目录映射关联。这样的话,当jar包发生变动时,直接更新宿主机目录下的jar包即可。即使jar包名字发生变化,也需要再更新一下hellolearn.sh脚本。更新之后重启容器。

    6.8 web测试效果

    docker怎么部署SpringBoot及替换jar包

    查看docker日志

    docker logs [options] container id

    options说明:

    -f : 跟踪日志输出
    --since :显示某个开始时间的所有日志
    -t : 显示时间戳
    --tail :仅列出最新n条容器日志

    7.1 查看指定时间后的日志,只显示最后100行:

    docker logs -f -t --since="2020-10-01" --tail=100 container id

    7.2 查个指定时间区段的日志

    docker logs -t --since="2020-10-01t19:00:00" --until "2020-10-01t19:00:00" container id

    7.3 查看指定时间后面的日志:

    docker logs -t --since="2020-10-01t19:00:00" container id

    7.4 查看最近5分钟的日志:

    docker logs --since 5m container id

    7.5 通过 exec 命令对指定的容器执行 bash:

    docker exec hellolearn -it /bin/bash 或者 docker exec -it hellolearn bash

    7.6 查看docker ip

    docker inspect --format='{{.networksettings.ipaddress}}' hellolearn

    遇到的问题

    问题描述:error response from daemon: driver failed programming external connectivity on endpoint flamboyant_leavitt (iptables failed: iptables --wait -t nat -a docker -p tcp -d 0/0 --dport 8301 -j dnat --to-destination 172.17.0.2:8301 ! -i docker0: iptables: no chain/target/match by that name.

    解决方案:重启docker。 systemctl restart docker

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Docker
    相关文章 更多
    docker创建容器后无法启动的排查与解决方法
    docker创建容器后无法启动的排查与解决方法

    Docker容器创建后无法启动或立即退出?本文详解如何通过docker logs查看报错、检查端口占用及修正配置文件,助你快速解决容器启动难题。

    docker容器自动重启怎么解决 排查原因与修复方法
    docker容器自动重启怎么解决 排查原因与修复方法

    遇到Docker容器频繁自动重启?本文提供从查看容器日志、解读退出代码到配置Restart Policy的完整排查与修复方案,确保服务稳定性。

    docker挂载目录教程详解本地目录映射方法
    docker挂载目录教程详解本地目录映射方法

    遇到Docker容器重启后数据丢失?本文手把手教你如何使用-v参数将本地目录映射到容器内部,解决数据持久化难题,并附带权限错误排查技巧。

    飞牛音乐服务器连接失败原因排查及解决教程
    飞牛音乐服务器连接失败原因排查及解决教程

    遇到飞牛NAS音乐服务无法连接?本文提供详细的界面操作指引,涵盖服务启用检查、端口与防火墙设置、媒体库索引状态确认及客户端配置修正,助你快速恢复音乐播放。

    docker 安装 hermes agent完整部署安装教程
    docker 安装 hermes agent完整部署安装教程

    本文详细介绍如何使用 Docker 部署 Hermes Agent,涵盖镜像获取、配置文件挂载、网络设置及常见故障排查,帮助开发者实现快速、干净的服务接入。

    skyvern官网入口及中文版使用教程
    skyvern官网入口及中文版使用教程

    Skyvern是一款基于大语言模型的开源浏览器自动化框架,目前仅提供英文界面且无官方中文版。本文指导用户通过GitHub获取源码,使用Docker快速部署本地环境,并解释其如何通过DOM树解析与自然语言指令实现网页自动操作,同时提供针对中文用户的配置建议与替代方案。

    docker 容器无法启动的配置检查命令及排查方法
    docker 容器无法启动的配置检查命令及排查方法

    当 Docker 容器启动后立即退出时,不要盲目重启。本文详解如何通过 docker logs 查看标准输出错误,利用 docker inspect 检查挂载与网络配置,并修正入口点脚本权限问题,提供一套高效的因果排查流程。

    NAS硬盘一直转正常吗怎么办?持续运转原因及解决方法
    NAS硬盘一直转正常吗怎么办?持续运转原因及解决方法

    NAS硬盘一直转动是否正常?本文深入分析导致硬盘无法进入休眠状态的四大核心原因,包括系统索引、第三方应用干扰及网络协议机制,提供可操作的排查与优化方案。

    Docker Compose 健康检查实战:用 service_healthy 消除启动竞态
    Docker Compose 健康检查实战:用 service_healthy 消除启动竞态

    解决容器已运行但应用不可用的问题。通过配置 healthcheck 探针和 depends_on service_healthy 条件,确保服务在依赖真正就绪后才启动。包含参数详解、YAML 配置示例及故障排查步骤。

    通过实战案例学习如何高效使用httpclient.jar
    通过实战案例学习如何高效使用httpclient.jar

    ApacheHttpClient是处理HTTP通信的强大工具库,能简化网络操作并提升效率。首先需配置HttpClient实例,设置超时和连接池以优化性能。通过各类请求对象发送GET或POST等请求,并正确处理响应状态码和响应体,注意使用try-with-resources管理资源。高级功能包括连接池管理、重试机制和拦截器,有助于增强健壮性。实践中应复用客户端

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    即将离开本站
    您即将前往第三方网站,请确认是否继续?