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

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

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 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 

访问测试

两台机子并发访问


有些事不是看到了希望才去坚持 而是因为坚持才会看到希望。

目录
相关文章
|
11月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1381 108
|
9月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
4027 4
|
11月前
|
运维 Devops 持续交付
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
在企业IT建设中,软件部署常面临效率低、易出错等问题。通过Docker与自动化工具,可实现高效、标准化和可追溯的部署流程,提升企业应用交付效率,降低运维门槛,助力中小企业实现自动化部署。
648 5
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
|
10月前
|
JavaScript 算法 前端开发
【Docker项目实战】使用Docker部署paopao-ce微社区
【Docker项目实战】使用Docker部署paopao-ce微社区
696 84
【Docker项目实战】使用Docker部署paopao-ce微社区
|
11月前
|
设计模式 Linux 开发工具
Docker部署会吗?
本段内容主要介绍了Docker常用命令、Linux基础指令及日志查看方法,还涉及SpringMVC的执行流程、设计模式与注解,适合用于面试中技术能力的展示。
223 0
|
11月前
|
运维 Cloud Native 开发者
Docker:现代化应用开发与部署的神器
Docker:现代化应用开发与部署的神器
335 101
|
10月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
829 12
docker 部署 sftp
|
9月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
422 5
|
10月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
2320 6