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

文章目录

  • Docker
    • Docker的定义
    • Docker有哪些作用
    • Docker有哪些好处
    • 使用docker部署springboot项目
      • 安装docker
      • 创建Dockerfile镜像文件
      • 执行镜像文件(Dockerfile文件)
      • 查看Docker镜像
      • 启动容器
      • 查看Docker中运行的容器
      • 查看服务容器日志
    • Docker常用指令
      • 查看docker安装目录
      • 启动Docker
      • 停止Docker
      • 重启Docker
      • 查看Docker
      • 设置开机自启
      • 启动已停止运行的容器
      • 重启容器
      • 停止容器
      • 强制停止容器
      • 删除已停止的容器
      • 查看服务容器日志
      • 删除当前真正启动的容器
      • 查看docker镜像
      • 查看运行中的docker容器
      • 启动docker容器
      • 通过Dockerfile构建镜像
    • 总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/110461.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无品牌国产PLC模块调试说明

地址30001对应的aiw9 30002对应aiw10 30003 aiw11 30004 aiw12 模块接线及拨码全部向下,对应的DeviceID为15地址 使用串口线链接的时候a要接b0 b接a0 要反着接才能有数据

金属压铸件自动化3D全尺寸测量设备自动外观检测三维检测-CASAIM

铸造作为现代装备制造工业的基础共性技术之一,铸件产品既是工业制造产品,也是大型机械的重要组成部分,被广泛运用在航空航天、工业船舶、机械电子和交通运输等行业。 铸件形状复杂,一般的三坐标或者卡尺圆规等工具难以获取多特征…

论文阅读——BART

Arxiv: https://arxiv.org/abs/1910.13461 一个去噪自编码器的预训练序列到序列的模型。是一个结合了双向和自回归transformers的模型。 预训练分为两个阶段:任意噪声函数破坏文本和序列模型重建原始文本 一、模型 input:被破坏的文本-->bidirecti…

【开发日记】必须记录一下困扰我两天的问题 MyBatisPlus适配达梦insert时提示:无效的列

【需求】 项目ORM框架使用的是MyBatisPlus,数据库原来使用的是MySQL,现在需要适配达梦。 【问题】 项目ORM框架使用的是MyBatisPlus,数据库原来使用的是MySQL,现在需要适配达梦数据库。 在适配过程中查询、更新、删除都没有问题…

购物车死了吗?拼多多的社交电商革命

亲爱的小伙伴们,大家好!我是小米,今天要和大家聊一聊一个备受关注的话题:拼多多为什么没有购物车?这是一个网易产品经理面试题,但也是一个备受争议的话题。让我们一起来探讨一下吧! 拼多多的购…

【idea】生成banner.txt

Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.netSpring Boot banner工具实现在线生成banner,轻松修改替换实现自定义banner,让banner.txt文…

Qt QWidget、QDialog、QMainWindow的区别

QWidget QWidget是Qt框架中最基础的窗口类,可以理解为用户界面的最基本单元。QWidget类提供了一个空白窗口,可以通过继承该类来创建自定义的窗口类。QWidget类提供了基本的窗口属性和方法,如大小、位置、标题、图标等。 QDialog QDialog是…

基于计算机视觉的 Transformer 研究进展

论文地址: https://kns.cnki.net/kcms/detail/11.2127.tp.20211129.1135.004.html 18页,74篇参考文献 目录 摘 要 1 Transformer 基本原理 1.1 编码器-解码器 1.2 自注意力 1.3 多头注意力 2 在计算机视觉领域的应用 2.1 图像分类 2.1.1 iGPT …

算法通过村第十七关-贪心|白银笔记|贪心高频问题

文章目录 前言区间问题判断区间是否重复合并区间插入区间 字符串分割加油站问题总结 前言 提示:如果生活把你的门关上了,那你就再打开,这就是门,门就是这样的。 --佚名 贪婪的思想不一定要理解的很透彻,但是贪婪的问题…

优优嗨聚集团:绝味鸭脖市值上升,餐饮业迎来新变革

导语:绝味鸭脖作为中国餐饮行业的领军企业,其市值上升不仅体现了企业的市场价值,更对整个餐饮行业产生了深远的影响。本文将探讨绝味鸭脖市值上升对餐饮行业的影响,以及未来餐饮行业的发展趋势。 一、绝味鸭脖市值上升&#xff0c…

50元买来的iPhone手机刷机经验

前段时间,家里的iPad被家人误操作,导致iPad变成不可使用状态。自己折腾了半天,没有找到解决办法。没有办法,只好拿到手机维修店去修理,很快就修理好了.其实也很简单--就是对iPad进行了刷机操作。当然我也看到了刷机的方法。今天&a…

pytorch复现3_GoogLenet

背景: GoogLeNeta是2014年提出的一种全新的深度学习结构,在这之前的AlexNet、VGG等结构都是通过增大网络的深度(层数)来获得更好的训练效果,但层数的增加会带来很多负作用,比如overfit、梯度消失、梯度爆炸等。GoogLeNet通过引入i…

网络编程服务端与客户端存在的端口问题

服务端的窗口不能再次使用的原因如下: 服务器端的窗口不能再次使用的原因可能有以下几点: 1. 窗口已经关闭:如果服务器端的窗口已经被关闭,那么就无法再次使用。关闭窗口后,服务器会释放相关资源,包括与该…

【机器学习】项目数据处理部分

文章目录 前言项目理解数据探索特征工程总结 前言 本文参考《阿里云天池大赛赛题解析》,拿到一个项目或者赛题,使用机器学习来进行预测分类,需要以下七个步骤: 项目(赛题)理解数据探索特征工程模型训练模…

STM32单片机智能小车一PWM方式实现小车调速和转向

目录 1. 电机模块开发 2. 让小车动起来 3. 串口控制小车方向 4. 如何进行小车PWM调速 5. PWM方式实现小车转向 1. 电机模块开发 L9110s概述 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,具体根据实际调试 IA1输入高电平&#xff…

第三方支付预付卡业务详解

第三方支付预付卡业务详解 第三方支付预付卡业务是指由第三方支付公司提供的一种预先充值后消费的支付方式。用户可以在第三方支付平台上购买预付卡,然后在指定的商户或者服务提供商那里进行消费。 运作模式: 1. 用户在第三方支付平台购买预付卡&#xf…

Elasticsearch(一)---介绍

简介 Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。 官网地址:Elasticsearch 平台 — 大规模查找…

Linux MeterSphere测试平台远程访问你不会?来试试这篇文章

🎬 鸽芷咕:个人主页 🔥 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网…

影响产品开发决策的认知偏见

认知偏见存在于每个人的内心,并在不断影响人们的工作和生活。认识并承认自己有偏见,并寻求相应的解决方案,可以帮助我们更好的做出产品决策、团队建设和架构设计。原文: The cognitive biases that influence product development decisions …

【c++|opencv】一、基础操作---2.图像信息获取

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 图像信息获取&#xff0c;roi 1. 图像信息获取 // 获取图像信息#include <iostream> #include <opencv2/opencv.hpp>using namespace cv; …
最新文章