记录使用Dockerfile来生成springboot项目镜像,并且启动运行
创始人
2025-05-30 03:12:43

一准备一个安装了docker的虚拟机

首先准备一个安装好了docker的虚拟机,我的docker版本是Docker version 19.03.13, build 4484c46d9d,接着我们先把打包好的springboot项目传输到虚拟机中。因为我这里仅仅是为了记录使用dockerfile的过程,所以就直接打好包上传了,但是在实际生产环境中,一般都是自动打好包然后自动部署就完事了。
图中红线所示就是我打好的包和所安装的docker环境。接下里我们开始白那些dockerfile。
在这里插入图片描述

二编写dockerfile

由于我这里仅仅是简单的使用dockerfile,所以我这边就不安装什么mysql镜像了。只要能访问springboot项目就算大功告成了。
首先创建一个目录用来放dockerfile文件和打好的jar包。

mkdir dockerExample

接着我们编写dockerfile

vi DockerfileFROM java:8
# 作者
MAINTAINER xzz
# 设置当前生成的镜像工作目录
WORKDIR /test
# 容器数据卷挂在
VOLUME /tmp
# 将宿主机中的jar包 copy到容器中 /tmp目录下, 并改名为 docker-test.jar
ADD Test-0.0.1-SNAPSHOT.jar /test/docker-test.jar
RUN bash -c 'touch /docker-test.jar'
# 容器启动后 执行命令 启动SpringBoot项目 java -jar xxx.jar
ENTRYPOINT ["java","-jar","/test/docker-test.jar"]
# 暴露端口号
EXPOSE 8080

接下来创建镜像:

# 记住最后还有一个点.
docker build -t docker_test:1.0 .

到此镜像已经创建完成了。
我们通过命令可以查看到镜像。
在这里插入图片描述
接着我们启动一下镜像

docker run -d --name docker_test -p 8080:8080 docker_test:1.0
docker ps

如下图所示,说明镜像启动成功了,
在这里插入图片描述
接着我们就可以通过ip来访问这个项目了。
如图所示是访问我的项目的界面:
在这里插入图片描述

总结

经过上面的一系列过程,我们发现dockerfile的确用处很大,这样我们每次就只需要启动镜像就够了,不需要再每次都要重新部署启动一些其他的依赖的软件了。节省了很大的功夫。

相关内容

热门资讯

普通插槽、具名插槽、作用域插槽 插槽 插槽就是子组件提供给父组件的占位符,用slot来表示,父组件可以在...
Go语言必知必会100问题-0... 减少代码的嵌套层数 软件开发中的“心智模型”用于描述开发人员在编码时心理活动,每段代码...
CSRF漏洞的概念、利用方式、... CSRF漏洞1.CSRF的概念1.1 什么是CSRF?1.2 基本攻击流程2.CSRF...
基于springboot开发的... 基于springboot开发的学生考勤管理系统 如需更多资料请前往文章底部获取联系方式 系统设计主要...
cocosCreator 之 ... cocosCreator版本: 3.7 简介 cocosCreator的工作流程是通...
vue2中$set的原理_它对... $set的作用背景动态添加属性,不使用$set动态添加属性,使用$set...
3/19考后总结 时间安排 8:30–8:50 读题,T1 感觉是乱搞题,T2 貌似可以二...
【JavaWeb】JDBC 目录 一、JDBC概述 1 JDBC概念 2 JDBC本质 3 JDBC好处 二,J...
python 多任务 一些概念 1.多任务 简单地说,就是同时可以运行多个任务。打个比方,你一...
基于springboot框架实... 基于springboot框架实现自习室预订系统的设计与实现 开发语言:Java 框架...
VMware Centos7 ... 接着开始在VMware中搭建我们的大前端环境。这里我已经在我本机安装好VMware虚拟机了。 Win...
JUC高级二: Java锁(上... JUC高级二: Java锁(上篇) 1. 乐观锁和悲观锁 synchronized关键字和Lock...
Go分布式爬虫笔记(八) 08_项目需求分析与架构设计 需求分析 业务需求 爬虫引擎为基础的推送系统 提供 快速的热点事...
【计量经济学】第一次作业(7、... 第二次 7.假设有人做了如下的回归: y i = β 0 ^ + β 1 ^ x i + e i ...
Java Iterator(迭... 简介 在Java中,如果我们需要遍历一个集合(Collection&#x...
作物杂交/记忆化搜索/记忆化数... 题解:本题用到了记忆化搜索:记忆化搜索,本质还是 动态规划...
Linux下是实现的 HTTP... 项目功能:(1)能接收客户端的GET请求;&...
运营数据分析模型—标签体系 标签体系 标签体系上是描述对象的一种机制,而标签作为标签体系的基本组成元素,用来描述对象具有某种属性...
在openSUSE-Leap-... 在openSUSE-Leap-15.4-DVD-x86_64中使用百度网盘AppImage 打开百度...
鸟哥的Linux私房菜 She... 第十二章、学习 Shell Scripts https://linux.vbird.org/linu...
2分钟快速了解!全网最详细的性...  目录:导读 Redis 简介 Redis 优势 Redis与其他key-value存...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...
纠错码中的汉明码,NAND F...      纠错码是一种用在不可靠的或者噪音比较大的通信信道中用来控制数据传输错误的技术。这种技术的核...
【Java】P14 面向对象(... 类的封装性封装性高内聚与低耦合何为封装性如何封装get 与 set 方法案例 封装性 高内聚与低耦...
【FPGA】Xilinx Co... 功能描述 1、Rotate Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输...
【Pytorch】使用Pyto... 文章目录1. 题目描述2. 代码实现验证写在最后 1. 题目描述 在这个例子中网络结构如下所示&#...
client-go disco... 1. 概述 discovery包主要用来发现服务器支持的API组、版本和资源的方法,及...
[LeetCode周赛复盘] ... [LeetCode周赛复盘] 第 100 场双周赛20230318 一、本周周赛总结二、 [Easy...
Matlab基础教学入门 Matlab是一种非常强大的数学计算工具,广泛应用于科学和工程领域。本篇文章将介绍一些...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...