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:用于指定持久化目录。

java 复制代码
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)

java 复制代码
docker build -t xxx:1.0 .

查看Docker镜像

输入下面的指令:
REPOSITORY:镜像名称
TAG:版本
IMAGE ID:镜像id

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

java 复制代码
docker images

启动容器

输入下面的指令:

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

handlebars 复制代码
sudo docker run -d -p 后端端口号:后端端口号 --name 镜像名称 镜像名称:版本号

例如

java 复制代码
sudo docker run -d -p xxx:xxx --name xxx xxx:v1.0

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

查看Docker中运行的容器

输入下面的指令:

java 复制代码
docker ps

输入完上面的指令后,如果显示向我下面的截图一样,表示启动成功!
NAMES:显示的是镜像端口。

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

查看服务容器日志

输入下面的指令:

java 复制代码
docker logs -f 这个地方填写你的镜像名称

例如:

java 复制代码
docker logs -f xxx

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

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

Docker常用指令

查看docker安装目录

java 复制代码
sudo docker info | grep -i root

启动Docker

java 复制代码
systemctl start docker

停止Docker

java 复制代码
systemctl stop docker

重启Docker

javascript 复制代码
systemctl restart docker

查看Docker

java 复制代码
systemctl status docker

设置开机自启

java 复制代码
systemctl enable docker

启动已停止运行的容器

java 复制代码
docker start 容器ID或者容器名

重启容器

java 复制代码
docker restart 容器ID或者容器名

停止容器

java 复制代码
docker stop 容器ID或者容器名

强制停止容器

java 复制代码
docker kill 容器ID或容器名

删除已停止的容器

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

查看服务容器日志

javascript 复制代码
docker logs -f 填写你的镜像名称

删除当前真正启动的容器

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

java 复制代码
docker rm 填写你的镜像名称

查看docker镜像

java 复制代码
docker images

查看运行中的docker容器

java 复制代码
docker ps

启动docker容器

java 复制代码
sudo docker run -d -p 后端端口号:后端端口号 --name 镜像名称 镜像名称:版本号

通过Dockerfile构建镜像

java 复制代码
docker build -t 镜像名称:版本号 .

总结

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

相关推荐
憨子周30 分钟前
2M的带宽怎么怎么设置tcp滑动窗口以及连接池
java·网络·网络协议·tcp/ip
网络研究院1 小时前
Am I Isolated:一款安全态势基准测试工具
容器·工具·基准测试·安全态势
涔溪2 小时前
Docker简介
spring cloud·docker·eureka
霖雨2 小时前
使用Visual Studio Code 快速新建Net项目
java·ide·windows·vscode·编辑器
SRY122404192 小时前
javaSE面试题
java·开发语言·面试
Fiercezm2 小时前
JUC学习
java
无尽的大道3 小时前
Java 泛型详解:参数化类型的强大之处
java·开发语言
ZIM学编程3 小时前
Java基础Day-Sixteen
java·开发语言·windows
我不是星海3 小时前
1.集合体系补充(1)
java·数据结构
内核程序员kevin3 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net