Docker 部署spring-boot项目(超详细 包括Docker详解、Docker常用指令整理等)

简介: Docker 部署spring-boot项目(超详细 包括Docker详解、Docker常用指令整理等)


大家好!我是夏小花,今天是2023年10月29日|农历九月十五,转眼间,马上进入到十一月份,最近这段时间一直在项目上没有更新文章,话不多说,今天这篇博文主要是简单了解一下docker、dockerfile的使用、docker部署spring-boot项目以及一些docker常用的指令,本篇文章中如果有不足的地方,欢迎大家多多指点,评论和私信都可以,谢谢!

Docker

Docker的定义

Docker是一个基于轻量级虚拟化技术的容器,整个项目基于Go语言开发,并采用了Apache 2.0协议。

Docker 其中包括 镜像、容器、仓库。

Docker有哪些作用

开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

使用docker部署一套代码可以在各个环境中使用,将应用环境和底层环境实现了解耦。

快速部署:Docker通过创建进程的容器,不必重新启动操作系统,几秒内能关闭,你可以在数据中心创建或销毁资源,不用担心额外消耗。

Docker有哪些好处

解决运行环境不一致所导致的问题,这样就不会产生“本地运行没问题,可一到服务器上就不行了”的情况。

使用docker部署springboot项目

安装docker

安装这块大家可以去网上查阅一下资料

顺便把Docker Compose也安装一下

Docker Compose是一个用来定义和运行复杂应用的Docker工具。

创建Dockerfile镜像文件

可以看下下面这个Dockerfile文件,我先来说下各个指令都代表什么意思:

FROM:指定基础镜像,必须为第一个命令(尽量不要定义的偏差太大)

ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget。

ENTRYPOINT:配置容器,使其可执行化。

EXPOSE:指定于外界交互的端口。

VOLUME:用于指定持久化目录。

FROM openjdk:8
# 这个地方我填写的是后端jar包所在的目录位置
VOLUME /xxx/xxx
# 这个地方我填写的是后端jar包名称,例如你的jar包名字叫aa.jar  这个地方就填aa.jar aa.jar(填两遍)
ADD xxx.jar xxx.jar
# 后端项目的端口号
EXPOSE xxx
# 前面都一样,只需要把后面的换成你的jar名称
ENTRYPOINT ["java", "-jar", "/xxx.jar"]

首先进入到项目目录下:

可以看到现在我这个目录下已经创建好了Dockerfile文件,把我上面的文件内容复制一下,按照上面的提示改一下就可以。

执行镜像文件(Dockerfile文件)

现在我的后端是处于停止状态,没有启动jar包

输入下面的指令:

xxx的那方我是填的当前目录名称(xjzdp)

docker build -t xxx:1.0 .

查看Docker镜像

输入下面的指令:

REPOSITORY:镜像名称

TAG:版本

IMAGE ID:镜像id

如果你执行完这个命令后可以看到镜像名称的就证明成功了,继续往下走!

docker images

启动容器

输入下面的指令:

根据我下面的例子,修改对应的信息即可

sudo docker run -d -p 后端端口号:后端端口号 --name 镜像名称 镜像名称:版本号

例如

sudo docker run -d -p xxx:xxx --name xxx xxx:v1.0

输入完上面的指令后,如果显示的一串英文+中文字符串,表示启动成功!

查看Docker中运行的容器

输入下面的指令:

docker ps

输入完上面的指令后,如果显示向我下面的截图一样,表示启动成功!

NAMES:显示的是镜像端口。

还有端口号、jar包名称等其它信息。

查看服务容器日志

输入下面的指令:

docker logs -f 这个地方填写你的镜像名称

例如:

docker logs -f xxx

从日志中查看你的项目是否启动成功,可以测试一下能不到访问到项目。

以上就是如何使用docker部署spring-boot项目如果有对以上步骤不明白的或者是遇到其它问题的博主可以私信我或者这本篇博文下评论都可以,我会一一为你解答,不收取任何费用,欢迎打扰哦!

Docker常用指令

查看docker安装目录

sudo docker info | grep -i root

启动Docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

查看Docker

systemctl status docker

设置开机自启

systemctl enable docker

启动已停止运行的容器

docker start 容器ID或者容器名

重启容器

docker restart 容器ID或者容器名

停止容器

docker stop 容器ID或者容器名

强制停止容器

docker kill 容器ID或容器名

删除已停止的容器

#删除一个
docker rm 容器ID  
docker rm -f 容器ID  #强制删除
 
 
#删除多个
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

查看服务容器日志

docker logs -f 填写你的镜像名称

删除当前真正启动的容器

-f 后面跟容器名称或者容器id都可以

docker rm 填写你的镜像名称

查看docker镜像

docker images

查看运行中的docker容器

docker ps

启动docker容器

sudo docker run -d -p 后端端口号:后端端口号 --name 镜像名称 镜像名称:版本号

通过Dockerfile构建镜像

docker build -t 镜像名称:版本号 .

总结

Docker 部署spring-boot项目我这边理解的大致就这么多了,后期本博主会更新更多前沿技术点及项目中遇到的一些问题,如果大家有技术难题或者有要探讨的技术点可以私信本博主哦!

目录
相关文章
|
1月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
192 3
|
4天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
10天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
47 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
24天前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
31 1
Spring MVC——项目创建和建立请求连接
|
24天前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
105 1
Maven——创建 Spring Boot项目
|
25天前
|
Web App开发 前端开发 测试技术
【Docker项目实战】使用docker部署tabler后台模版
【10月更文挑战第10天】使用docker部署tabler后台模版
31 1
【Docker项目实战】使用docker部署tabler后台模版
|
26天前
|
JSON JavaScript 测试技术
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
【10月更文挑战第9天】使用Docker部署PPTist在线演示文稿应用
33 1
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
|
27天前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
21 1
如何使用 maven 创建一个 Spring Boot项目
|
27天前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
72 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
28天前
|
存储 前端开发 测试技术
【Docker项目实战】使用Docker部署Calcium网页计算器
【10月更文挑战第7天】使用Docker部署Calcium网页计算器
28 1
【Docker项目实战】使用Docker部署Calcium网页计算器