千家信息网

如何把SpringBoot应用打包成Docker镜像并运行

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"如何把SpringBoot应用打包成Docker镜像并运行"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细
千家信息网最后更新 2026年11月03日如何把SpringBoot应用打包成Docker镜像并运行

本篇内容介绍了"如何把SpringBoot应用打包成Docker镜像并运行"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

(1) 首先要有一个可以工作的SpringBoot应用。

从Jerry的github上clone这个github repository到本地:

cd进入项目文件夹内,使用命令行mvn spring-boot:run

当看到控制台输出 Tomcat started on port: 5030(http)的提示后,说明SpringBoot应用在本地启动成功,

这时用下面的url可以访问这个SpringBoot应用,如果一切正常,

http:///product

可以在浏览器里看到Hello World:

注:该SpringBoot应用监听的端口为5030,如果想修改成其他端口,在application.properties里修改。

(2) 下一步是登录阿里云服务器,将该SpringBoot打包成Docker镜像。

我的github仓库里已经写好了一个Dockerfile文件,Docker镜像就是基于该Dockerfile进行制作。

第一行的FROM命令,指定了我们这个镜像基于openjdk这个镜像制作。

第二行的VOLUME命令,定义了一个持久化存储,指向容器中的tmp文件夹。SpringBoot应用为内置的Tomcat服务器实例创建的默认工作目录为tmp,通过该命令,可以在运行Docker的宿主机目录/var/lib/docker创建一个临时的目录,挂接到容器内部的tmp去。

如果你的SpringBoot应用不会进行持久化写操作,则该步骤可以省略。

第三行,把本地目录下target文件夹里打好的jar文件添加到容器里,重命名为app.jar.

第四行:ENV命令的作用是设置环境变量。在复杂的使用场景中,我们可能需要使用各种参数启动JVM,这些参数通过ENV命令设置的环境变量传入Java命令。在这个简单的例子里可以省略环境变量的设置。

第五行:ENTRYPOINT,顾名思义,容器镜像运行的起始点。

了解了这个Dockerfile的作用和语法后,我们使用docker build基于这个Dockerfile生成一个镜像。

> docker build -t jerry/springbootexample:v1 .

上面命令行最后的"."并不是表示结束的标点符号,而是Linux系统里的".", 代表当前目录。

执行上述命令行后,会看到我们在Dockerfile里定义的5条命令被依次执行,首先是下载openJDK这个基础镜像:

然后依次执行剩余步骤。

看到Successfully built 提示消息后,说明该镜像成功创建了。

使用docker images命令行能看到这个镜像,大小为136MB.

(3) 最后,就是使用docker run命令执行这个镜像。

run命令有很多参数,比如以交互式方式运行镜像:

> docker run -it jerry/springbootexample:v1

这种方式下,镜像处理用户请求时的输出会自动重定向到宿主机的控制台上。

而-p参数可以实现端口映射,下面命令行的含义是把Docker内SpringBoot应用监听的端口映射到宿主机的8000端口。这样,当用户在浏览器里访问时,使用的端口应该是宿主机的端口8000.

> docker run -p 8000:9000 --name jerrydockerdemo -d jerry/springbootexample:v1

可以使用docker ps命令拿到该运行镜像的ID,再用docker stop命令终止镜像的运行。

也可以使用命令docker exec -it, 进入一个正在运行的容器内部:

> sudo docker exec -it 8302db78f838 /bin/sh

我们之前在编写Dockerfile时,用VOLUME指令创建的tmp,此时进入容器内部就可以观察到了。在tmp里,果然发现了SpringBoot在执行过程中,其内置的Tomcat实例运行时工作目录下生成的数据。

"如何把SpringBoot应用打包成Docker镜像并运行"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

命令 镜像 应用 运行 端口 容器 目录 文件 参数 宿主 宿主机 变量 文件夹 环境 工作 输出 成功 作用 内容 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 科技金融是不是互联网金融 科技互联网政务服务 朗新科技与工业互联网 天下捷融互联网科技 广州善班互联网科技 互联网科技美容 佰商互联网科技有限公司 深圳国际航运科技和互联网 随着互联网科技发展 重庆威客帮互联网科技 互联网对科技的发展 南平创想时代互联网科技有限公司 成都互联网科技公司工作好不好 中国互联网十大科技股排名 卓翼科技产业互联网合作 为客找房互联网科技公司怎么样 四川互联网展示科技馆设计 互联网科技数字货币 郑州欣桑互联网科技有限公司 小米移动互联网科技园 唐信互联网科技 大连 佩信高科技互联网 科技互联网的估值 全球顶尖互联网科技公司 彤创互联网科技有限公司 宇信科技在杭州互联网排第几 互联网科技平台产品运营 美国五大互联网科技公司市值多少 绵阳真晨互联网科技有限公司
0