当前位置: 首页 > news >正文

Docker快速部署springboot项目

本文概述

本文主要介绍了怎么将springboot项目打包为docker镜像,并如何在后端服务器上使用docker快速部署springboot应用和nginx应用。

一、打包springboot项目

1、复制原来的application.yml文件然后重命名为application-pro.yml文件,将application-pro.yml里面的数据库配置等修改为实际生产环境中的配置。

2、点击IDEA右侧的Maven按钮,会弹出Maven的管理面板

然后先双击clean,然后在双击package,等待打包完成。

打包完成后,在target目录下可以找到打包好的jar包和original文件

然后将这两个文件上传到服务器任意目录下,待用。

3、新建一个Dockerfile文件,没有后缀,名字只能是Dockerfile

然后编写Dockerfile配置,其中的--spring.profiles.active=pro是指启用我们之前配置的application-pro.yml文件。

编写完成后,将Dockerfile文件上传到跟之前上传的jar包同一个目录下

4、使用CD指令,进入jar包,Dockerfile文件的目录下

cd /root/test

然后将jar包,打包成镜像

docker built -t testapp:v0.0.1.2 .

其中的testapp是镜像名,v0.0.1.2是版本号,注意不要漏写了最后的 .

然后我们查看一下镜像列表,看看我们有没有成功打包成镜像

docker images

如果镜像名出现在列表里面说明,我们的打包工作就完成了

二、创建网络

我们使用命名去创建一个网络,以便宿主机内在同一个网络下的各个容器能够相互通信

docker network create --driver bridge test_net

其中的test_net是网络名,可以自行修改

三、部署springboot应用

docker run -d --name test --network test_net -p 8080:8080 testapp:V0.0.1.2

其中 test是容器名 test_net是网络名 testapp是镜像名

然后我们查看下正在运行的容器,看我们新创建的容器有没有正常运行

docker ps

如上图所示就是正在运行了。

四、部署nginx

先使用命令在宿主机创建出保存nginx配置的文件夹和文件

mkdir -p /root/nginxmkdir -p /root/nginx/htmlmkdir -p /root/nginx/logtouch /root/nginx/nginx.conftouch /root/nginx/log/error.logtouch /root/nginx/log/access.log

然后我们对宿主机上的nginix.conf进行配置

# 用户配置
user nginx;
worker_processes auto;#工作线程数# 错误日志和进程ID文件的路径
error_log /root/nginx/error.log;
pid /run/nginx.pid;# 工作模式和连接数设置
events {worker_connections 1024;
}# HTTP 服务器配置
http {# 包含 mime 类型映射include /etc/nginx/mime.types;default_type application/octet-stream;# 日志设置log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;# 发送配置sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;# 包含其他配置文件include /etc/nginx/conf.d/*.conf;# Server configurationserver {listen 80;  # 监听HTTP标准端口server_name api.test.com;  # 服务器的域名或者iplocation / {proxy_pass http://test:8080;  # 将请求转发到后端服务proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
}

这是一份最基础的nginx配置,如有其它需求请自行配置,这里我们只用修改server里面的listen(监听端口号),server_name(这里写你后端服务器的ip,或者域名),proxy_pass(将test替换为你的springboot镜像名和对应的端口号)

然后创建并运行nginx的容器

 docker run -d --name nginx --network test_net -p 80:80 -p 443:443 -v /root/nginx/html:/user/share/nginx/html -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/log/error.log:/var/log/nginx/error.log -v /root/nginx/log/access.log:/var/log/nginx/access.log --privileged nginx:latest

这里只用将网络修改为跟springboot应用同一个网络就行了

至此后端服务部署完成,因为数据库用的是专门的一台数据库服务器所以这里没有运行mysql的docker。(完结撒花~)

 作者介绍

作者本人是一名人工智能炼丹师,目前在实验室主要研究的方向为生成式模型,对其它方向也略有了解,希望能够在CSDN这个平台上与同样爱好人工智能的小伙伴交流分享,一起进步。谢谢大家鸭~~~

 如果你觉得这篇文章对您有帮助,麻烦点赞、收藏或者评论一下,这是对作者工作的肯定和鼓励。  

尾言

 如果您觉得这篇文章对您有帮忙,请点赞、收藏。您的点赞是对作者工作的肯定和鼓励,这对作者来说真的非常重要。如果您对文章内容有任何疑惑和建议,欢迎在评论区里面进行评论,我将第一时间进行回复。 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 冯喜运:6.10周一黄金还会再次拉升吗?日内黄金原油操作策略
  • 简单介绍一下vim
  • Uniapp与第三方应用数据通讯
  • 【数据结构】详解堆排序当中的topk问题(leetcode例题)
  • HTML 中使用 JavaScript 的具体方式
  • PHP实现一个简单的接口签名方法以及思路分析
  • 单片机(STM32)与上位机传输浮点数
  • 20240606更新Toybrick的TB-RK3588开发板在Android12下的内核
  • kafka-生产者事务-数据传递语义事务介绍事务消息发送(SpringBoot整合Kafka)
  • 个人博客搭建
  • Android 蓝牙profile的配置
  • [数据集][图像分类]人种黄种人白人黑人等分类数据集56000张7类别
  • 【Oracle】Oracle导入导出dmp文件
  • 【Golang】Go语言中defer与return的精妙交织:探索延迟执行与返回顺序的微妙关系
  • Webpack 从入门到精通-基础篇
  • angular2 简述
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • java中的hashCode
  • Puppeteer:浏览器控制器
  • vue-loader 源码解析系列之 selector
  • 后端_MYSQL
  • 力扣(LeetCode)965
  • 前端知识点整理(待续)
  • 如何学习JavaEE,项目又该如何做?
  • 手写一个CommonJS打包工具(一)
  • C# - 为值类型重定义相等性
  • ​卜东波研究员:高观点下的少儿计算思维
  • $refs 、$nextTic、动态组件、name的使用
  • (19)夹钳(用于送货)
  • (2)空速传感器
  • (3)llvm ir转换过程
  • (3)STL算法之搜索
  • (libusb) usb口自动刷新
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (差分)胡桃爱原石
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (力扣)1314.矩阵区域和
  • (三)docker:Dockerfile构建容器运行jar包
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十三)Flask之特殊装饰器详解
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)甲方乙方——赵民谈找工作
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core Web APi类库如何内嵌运行?
  • .net core使用RPC方式进行高效的HTTP服务访问