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