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

 更新时间:2024年02月21日 14:42:19   作者:hhzz  
这篇文章主要介绍了如何利用Docker部署一个简单的springboot项目,本文通过实例图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下

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

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

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

1.1、下载redis镜像

docker pull redis

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

mkdir /root/data/redis

创建redis.conf,里面的内容为:

appendonly yes
requirepass 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.xx
      port: 6379
      password: ABC@123

2.2、编写controller

/**
 * @Author tigerhhzz
 * @Date 2024 02 20 10 48
 * 统计访问页面的人数
 **/
@RestController
public class CounterController {
    @Autowired
    StringRedisTemplate 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=tigerhhzz
COPY target/*.jar   /app.jar
ENTRYPOINT ["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 

访问测试

两台机子并发访问

到此这篇关于如何利用Docker部署一个简单的springboot项目的文章就介绍到这了,更多相关Docker部署springboot项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解docker pull 下来的镜像都存到了哪里

    详解docker pull 下来的镜像都存到了哪里

    这篇文章主要介绍了详解docker pull 下来的镜像都存到了哪里,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Dockerfile文本文件使用方法实例解析

    Dockerfile文本文件使用方法实例解析

    这篇文章主要介绍了Dockerfile文本文件使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 关于构建aarch64环境Mysql8.0的Docker镜像问题

    关于构建aarch64环境Mysql8.0的Docker镜像问题

    这篇文章主要介绍了构建aarch64环境Mysql8.0的Docker镜像,需要的朋友可以参考下
    2022-04-04
  • docker镜像拉取速度过慢的解决方案

    docker镜像拉取速度过慢的解决方案

    这篇文章主要介绍了docker镜像拉取速度过慢的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Windows安装docker-desktop的详细步骤

    Windows安装docker-desktop的详细步骤

    这篇文章主要介绍了Windows安装docker-desktop的详细步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境

    Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境

    计算机视觉是一门涉及图像和视频处理的领域,可以应用于目标检测、图像识别、人脸识别等各种任务,本文给大家介绍Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境,感兴趣的朋友一起看看吧
    2023-12-12
  • 利用Dockerfile制作个人的镜像文件详细讲解

    利用Dockerfile制作个人的镜像文件详细讲解

    Docker是一个开源的应用容器引擎,Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本,本文将给大家详细介绍如何利用Dockerfile制作个人的镜像文件,感兴趣的同学可以借鉴参考
    2023-06-06
  • docker之tomcat8.5容器中如何部署war包

    docker之tomcat8.5容器中如何部署war包

    文章介绍了如何使用Docker和docker-compose将一个Spring Boot项目的WAR文件部署到Tomcat 8.5容器中,并详细描述了创建和启动容器、配置数据库连接以及打包和部署WAR文件的步骤
    2025-01-01
  • docker运行nginx不生效的解决办法

    docker运行nginx不生效的解决办法

    当docker运行nginx镜像时,设置端口映射,则只有该映射端口起作用,nginx配置的其他端口无效,接下来本文将给大家介绍docker运行nginx不生效的解决办法,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-01-01
  • Docker端口不受ufw防火墙限制问题及解决过程

    Docker端口不受ufw防火墙限制问题及解决过程

    Docker与UFW因iptables兼容性导致端口未被正确过滤,通过修改UFW的after.rules文件,添加针对容器IP和端口的规则,并重启UFW或服务器,可使UFW规则生效,仅允许特定容器端口被外部访问
    2025-09-09

最新评论