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

目录
相关文章
|
2天前
|
Cloud Native 测试技术 数据安全/隐私保护
云原生之使用Docker部署Teedy轻量级文档管理系统
【5月更文挑战第8天】云原生之使用Docker部署Teedy轻量级文档管理系统
31 1
|
2天前
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
14 3
|
2天前
|
Java 应用服务中间件 Spring
【JavaEE】Spring Boot - 项目的创建和使用(下)
【JavaEE】Spring Boot - 项目的创建和使用
6 0
|
2天前
|
数据可视化 Java 应用服务中间件
【JavaEE】Spring Boot - 项目的创建和使用(上)
【JavaEE】Spring Boot - 项目的创建和使用
6 0
|
2天前
|
存储 Java 对象存储
【JavaEE】DI与DL的介绍-Spring项目的创建-Bean对象的存储与获取
【JavaEE】DI与DL的介绍-Spring项目的创建-Bean对象的存储与获取
9 0
|
2天前
|
Java 应用服务中间件 Maven
Spring Boot项目打war包(idea:多种方式)
Spring Boot项目打war包(idea:多种方式)
13 1
|
2天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
18 3
|
2天前
|
Java 关系型数据库 MySQL
【Java Spring开源项目】新蜂(NeeBee)商城项目运行、分析、总结
【Java Spring开源项目】新蜂(NeeBee)商城项目运行、分析、总结
13 4
|
2天前
|
Cloud Native 安全 Linux
【云原生之Docker实战】使用Docker部署mBlog微博系统
【5月更文挑战第10天】使用Docker部署mBlog微博系统
11 2
|
2天前
|
JavaScript 前端开发 测试技术
Docker环境下部署Ghost开源内容管理系统
【5月更文挑战第9天】Docker环境下部署Ghost开源内容管理系统
12 0