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

利用Docker部署一个简单的springboot项目

文章目录

      • 1、首先利用docker部署一个redis中间件
        • 1.1、下载redis镜像
        • 1.2、在主机创建redis挂载的目录和文件
        • 1.3、部署redis中间件
      • 2、创建springboot项目
        • 2.1、修改application.yml
        • 2.2、编写controller
        • 2.3、启动应用并测试访问
      • 3、将应用打包成镜像
        • 3.1、编写Dockerfile
        • 3.2、上传文件到服务器
        • 3.3、制作java应用镜像
      • 4、启动容器
      • 5、访问测试
      • 6、镜像应用分享与启动
        • 6.1、推送到阿里云个人镜像仓库
        • 6.2、新的主机拉取镜像并启动容器

1、首先利用docker部署一个redis中间件

这里注意两个问题:
挂载两个redis文件

  1. redis的配置文件 redis.conf
  2. 挂载redis的数据目录

在这里插入图片描述

1.1、下载redis镜像
docker pull redis

在这里插入图片描述

1.2、在主机创建redis挂载的目录和文件
mkdir /root/data/redis

在这里插入图片描述
创建redis.conf,里面的内容为:

appendonly yesrequirepass ABC@123
1.3、部署redis中间件

部署一个Redis+应用,尝试应用操作Redis产生数据

##运行redis镜像
docker run -v /root/data/redis/redis.conf:/etc/redis/redis.conf \
-v /root/data/redis/data:/data \
-d --name myredis \
-p 6379:6379 \
redis:latest  redis-server /etc/redis/redis.conf

redis使用自定义位置的配置文件启动命令。

redis启动成功
在这里插入图片描述
使用redis桌面连接工具redisdestopmanager测试连接docker启动的redis应用:
注意这边要记住放行安全组中的6379端口!!!!
在这里插入图片描述

连接成功!!!
在这里插入图片描述

2、创建springboot项目

使用下面的方式创建一个简单的springboot项目:
https://start.spring.io/
在这里插入图片描述
使用idea打开下载的项目,删除无用文件和文件夹,等待下载所需依赖。
在这里插入图片描述

2.1、修改application.yml
spring:data:redis:host: xx.xx.xx.xxport: 6379password: ABC@123
2.2、编写controller
/*** @Author tigerhhzz* @Date 2024 02 20 10 48* 统计访问页面的人数**/
@RestController
public class CounterController {@AutowiredStringRedisTemplate redisTemplate;@GetMapping("/hello")public String count(){Long increment = redisTemplate.opsForValue().increment("count-person");return "有【"+ increment +"】人访问了这个页面";}
}

在这里插入图片描述

2.3、启动应用并测试访问

在这里插入图片描述
查看redis的count-person的值的变化:
在这里插入图片描述

3、将应用打包成镜像

编写Dockerfile将自己的应用打包镜像

所有机器都安装Docker,任何应用都是镜像,所有机器都可以运行。

3.1、编写Dockerfile
FROM openjdk:17-jdk-alpine
LABEL maintainer=tigerhhzzCOPY target/*.jar   /app.jarENTRYPOINT ["java","-jar","/app.jar"]

在这里插入图片描述

3.2、上传文件到服务器

上传的文件为jar包和Dockerfile文件

在这里插入图片描述
利用xshell工具上传文件
在这里插入图片描述

3.3、制作java应用镜像
docker build -t java-demo:v1.0 .

在这里插入图片描述

镜像制作完成,查看java-demo镜像:
在这里插入图片描述

4、启动容器

启动应用容器

docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0 

启动成功:
在这里插入图片描述

5、访问测试

在这里插入图片描述

6、镜像应用分享与启动

6.1、推送到阿里云个人镜像仓库
##登录阿里云Docker Registry
docker login --username=aliyun2164344789 registry.cn-zhangjiakou.aliyuncs.com##打标签
docker tag 596b1bd9b839 registry.cn-zhangjiakou.aliyuncs.com/tiger-aliyun-namespace/tigerhhzz-java-demo:v1.0##推送镜像
docker push registry.cn-zhangjiakou.aliyuncs.com/tiger-aliyun-namespace/tigerhhzz-java-demo:v1.0

在这里插入图片描述
镜像推送成功
在这里插入图片描述

6.2、新的主机拉取镜像并启动容器
docker pull registry.cn-zhangjiakou.aliyuncs.com/tiger-aliyun-namespace/tigerhhzz-java-demo:v1.0

查看镜像

docker images

在这里插入图片描述

运行镜像

docker run -d -p 8080:8080 --name tigerhhzz-java-app registry.cn-zhangjiakou.aliyuncs.com/tiger-aliyun-namespace/tigerhhzz-java-demo:v1.0 

访问测试
在这里插入图片描述
两台机子并发访问
在这里插入图片描述

http://www.lryc.cn/news/302670.html

相关文章:

  • 【Java】纯小白的三种工厂模式基础知识学习笔记
  • Spring Boot 笔记 006 创建接口_注册
  • 沁恒CH32V30X学习笔记08---基本定时器超时功能
  • GitHub | 在 GitHub 上在线展示 Vue 项目
  • Android的Compose
  • C++ STL->list模拟实现
  • 基于python+django+vue.js开发的健身房管理系统
  • GPT-4对编程开发的支持
  • “成像光谱遥感技术中的AI革命:ChatGPT应用指南“
  • 12.25 校招 实习 内推 面经
  • 深度学习基础之《TensorFlow框架(3)—TensorBoard》
  • 杨氏矩阵和杨辉三角
  • PostgreSQL教程(四):高级特性
  • 168基于matlab的六自由度并联摇摆台的反解控制算法
  • MDC 日志跟踪笔记
  • MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
  • 人工智能|机器学习——基于机器学习的舌苔检测
  • SQL查询转化为 Elasticsearch 查询
  • 目标检测教程视频指南大全
  • 【Linux取经路】文件系统之重定向的实现原理
  • JAVA设计模式结构型模式
  • 第4讲引入JWT前后端交互
  • 基于Java的车辆租赁管理平台/租车系统
  • 如何升级至ChatGPT Plus:快速指南,ChatGPT的秘密武器GPT4.0是什么?
  • 【天衍系列 05】Flink集成KafkaSink组件:实现流式数据的可靠传输 高效协同
  • 深度学习之pytorch实现逻辑斯蒂回归
  • 有事休假店铺无人看守怎么办?智能远程视频监控系统保卫店铺安全
  • 酷开科技 | 酷开系统壁纸模式,让过年更有氛围感!
  • Docker中部署flink集群的两种方式
  • 八、计算机视觉-边界填充