使用docker部署springboot项目小白教程

简介: 使用docker部署springboot项目小白教程
一,创建springboot项目

大家随意创建一个 springboot 项目就行了,这里给大家展示一个半成品,稍后可以去gitee上下载源码。自己创建的话勾选 web 这个依赖即可。然后在本地测试一下自己写的接口,如果没问题,就可以发布了

二,在对自己的项目进行打包

1,找到右下角的Maven Projects,进行如下步骤


2,说说这里面打包项目的坑,可能会遇到如下错误

Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...

解决方案:

修改maven-resources-plugin的版本,如下。在进行以上步骤,代码就能进行打包了

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!--在这里修改版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
            </plugin>
        </plugins>
    </build>

3,最后控制台出现如下,则打包完成

,4,也可以在这个target目录下发现jar包已经存在了

三,测试jar包

1,通过如下找到jar包的位置

2,打开后,文件夹中cmd打开命令行提示符

3,输入java -jar jar包名称,可以发现本地也能跑,说明jar包没问题,那就放心的放到服务器上了

四,idea安装及使用dcoker

1,找到设置,下载dcoker插件即可

2,安装成功的话,新建Dockerfile文件,可以发现出现高亮

3,编写Dockerfile文件

#版本为java8
FROM java:8
#将所有jar包复制
COPY *.jar /app.jar
#服务端口号
CMD ["--server.port=8080"]
#向外面暴露的端口
EXPOSE 8080
#容器启动的时候运行的命令
ENTRYPOINT ["java","-jar","/app.jar"]

4,使用xftp将Dockerfile文件 和生成 jar 的包传输到linux下,我这边用的是阿里云服务器

5,在服务器下的 /home 目路下新建一个 /idea 目录,将传输的文件移动到该目录下即可

2021012216560721.png

6,创建一个容器,最后面是有一个点的

docker build -t zhenghuisheng .

7,在构建成功之后,可以发现这个 Dockerfile 的文件也执行了

8,查看构建的镜像,已经在里面了

docker images

五,部署项目

1,运行构建的镜像

docker run -d -p 8080:8080 --name springboot_web zhenghuisheng

解释一下

-d :以后台方式交互运行
-p :暴露端口号第一个8080是暴露linux 的端口号,这样外部才能连接linux
       第二个端口号暴露的是容器的端口号,这样linux才能连接容器
       这样外部就能通过服务器访问容器了
--name : 给容器命名,可以通过docker ps下查询,名字随意
zhenghuisheng : 上面构建镜像的名称

2,查看当前容器是否在运行,

docker ps

可以发现已经在运行了

3,测试能否连通,上一步可以发现一个ports 端口号,于是curl测试一下

4,curl 测试

curl 0.0.0.0:8080

出现一下界面,测试成功

5,浏览器访问一下,输入服务器外网ip + linux暴露的端口号8080

6,如果没有出现以上界面,那么就有以下可能

没有关闭防火墙,没有在阿里云服务器开放端口

具体详情可以参照另一篇博客:https://blog.csdn.net/zhenghuishengq/article/details/112868488

里面有许多踩坑以及脱坑的事例

7,可以发现已经到了我项目的登录界面了。本来想发这个项目到gitee的,想想还是算了

六,总结

由于我这个是在web上进行了部署,很多人肯定是想问为什么不需要部署 tomcat 环境的,当时我也有过此疑问,为什么不需要呢?后来才想明白,我们用的是springboot项目,里面自带了 tomcat 。

因此到这里,我们的项目就算是部署成功了,欢迎留言!

相关文章
kde
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
980 4
|
2月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
141 5
|
3月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
259 12
docker 部署 sftp
|
3月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
1163 6
kde
|
2月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
754 7
kde
|
2月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
kde
1894 8
kde
|
2月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
kde
499 4
|
3月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
195 13
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。