Docker部署Springboot项目全流程:从打包到访问一篇搞定

 更新时间:2026年07月20日 10:06:21   作者:站在风口的朱  
还在为Springboot项目部署发愁?这篇实战教程手把手教你从本地打包jar、配置远程数据库,到服务器安装Docker、拉取MySQL镜像,最后用Dockerfile构建镜像并运行容器,全程步骤清晰,避免常见坑,让你轻松实现项目上线访问

1.本地springboot 项目打包

1.打包前记得修改远程数据库,改成所在数据库所在服务器IP。

2.maven 打包项目成jar包。(记得点击闪电按钮,跳过maven test)

3.target目录下出现jar,表示打包成功

4.准备将第一个jar包上传服务器。

同时本地sql文件也需要上传到对应服务器的数据库(推荐Navicat可视化工具打包sql)

至此,spring boot项目本地打包完成

(注意,打包前一定检查仔细,项目配置一旦出现错误,上传后很难修改,只能重新上传非常麻烦)

2. 服务器端docker

1.下载docker

第一种直接下载

curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun

(如果服务器端安装宝塔等管理系统可以直接可视化安装)

2.安装和设置仓库

参考使用阿里云

sudo yum install -y yum-utils   device-mapper-persistent-data   lvm2
sudo yum-config-manager     --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

配置一下阿里云镜像加速

mkdir -p /etc/docker
#配置文件格式
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
}

重启daemon配置和docker

systemctl daemon-reload
systemctl restart docker

3.启动docker

sudo systemctl start docker

出现下图内容,表示docker运行成功

3.服务器配置

1.端口打开

如果使用的是腾讯云、阿里云之类的服务器,记得端口需要打开。

(个人练习的项目,无所谓安全的可以放开全部端口,比较方便省事)

2.安装MySQL。

这里分为两种,一种MySQL安装在服务器,这种比较传统,不做介绍 

另外一种是docker安装MySQL,比较推荐。docker容器本身就是用来管理配置环境的,以后的配置都推荐安装在docker容器上

1.从docker hub上查找mysql镜像

docker search mysql

2、从docker hub上拉取mysql,我拉取的mysql版本是mysql5.7

docker pull mysql:5.7

3、运行mysql,开放的端口是3306,密码是123456, -d是后台运行

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

4、docker ps -a 查看容器创建成功

docker打包

1.将前面的jar包上传到服务器。推荐放在/home/docker

2.在该目录下新建Dockerfile文件

3.vim Dockerfile

4.写入

#注意,docker命令全部大写,这是规定。
#   From 关键字表示,jar包依赖的环境。java:8  相当于jdk1.8
FROM java:8
 
#ADD命令 
#   blog-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。
#   /blog.jar:这是自定义的名称。但是注意要有之前的/
ADD blog-0.0.1-SNAPSHOT.jar /blog.jar
 
#MAINTAINER  作者名称。可以删除不写。
MAINTAINER zhulei
 
#EXPOSE 项目暴露的端口号
EXPOSE 8080
#/blog.jar此处的名称要和ADD命令后面的一样。
ENTRYPOINT ["java","-jar","/blog.jar"]

5.在docker文件夹下执行如下命令

docker build -t blog:1.0 .

说明:

  • blog 代表要打包成的镜像名称。按照自己实际情况写。
  • :1.0 代表版本号,可以不写则默认为latest
  • . 代表为当前目录。这就是为什么一直在步骤一文件夹中进行操作,并且Dockerfile在此文件夹中的原因。

若之前Dockerfile不在步骤一的文件夹中 则需要指定到对应的地址。

6、接下来用docker images 就可以查看到这个镜像已经被创建好了,接下来运行这个镜像就可以了

docker run --name blog -d -p 80:8080 blog:1.0

注意:80端口指服务器访问端口可以自己定义,但需要提前在服务器安全组里面打开端口,否则无法访问;8080是你自己jar项目的端口,必须和springboot里的一样。

7.就可以进行服务器ip地址进行访问了,如果绑定了域名,就可以用域名进行访问

直接浏览器打开

http://1.IP地址:服务器端口(80)/

举例:http://1.117.218.148:9999/

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在docker中运行mariadb程序的方法

    在docker中运行mariadb程序的方法

    这篇文章主要介绍了在docker中运行mariadb程序的方法,首先大家先安装docker,然后在进行相应的操作,具体内容详情大家参考下本文
    2018-05-05
  • 如何使用docker搭建upload-labs

    如何使用docker搭建upload-labs

    upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场,旨在帮助大家对上传漏洞有一个全面的了解,本文给大家介绍使用 Docker 搭建 upload-labs 的步骤,感兴趣的朋友一起看看吧
    2024-03-03
  • docker rm删除容器的实现示例

    docker rm删除容器的实现示例

    本文主要介绍了docker rm删除容器的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-01-01
  • 详解Windows 利用 WSL2 安装 Docker 的2种方式

    详解Windows 利用 WSL2 安装 Docker 的2种方式

    这篇文章主要介绍了Windows 利用 WSL2 安装 Docker 的2种方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 详细讲解Docker-Compose部署Kafka KRaft集群环境

    详细讲解Docker-Compose部署Kafka KRaft集群环境

    这篇文章主要为大家介绍了Docker-Compose部署Kafka KRaft集群环境的全面详细讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Linux Docker阿里云镜像仓库失效的解决

    Linux Docker阿里云镜像仓库失效的解决

    作者分享了在VmWare安装的Linux7中,通过yum安装的docker无法pull镜像的问题解决经验,首先,他检查了网络是否通畅,然后设置了阿里云镜像加速地址,但仍然无法pull镜像,接下来,他查看了docker是否成功设置镜像地址,并查看了docker日志
    2024-10-10
  • mac通过docker一键部署Nexus3的过程记录

    mac通过docker一键部署Nexus3的过程记录

    编写一些简易的 shell 脚本帮我们快速的搭建服务器,猿们只要按着套路“一步一步”的操作,基本上都可以快速部署服务,这篇文章主要介绍了mac通过docker一键部署Nexus3及安装步骤,需要的朋友可以参考下
    2022-10-10
  • Docker创建enrollment token错误异常解析及解决方案

    Docker创建enrollment token错误异常解析及解决方案

    部署完kibana,需要通过enrollment token方式来连接elasticsearch,此时需要在elasticsearch中创建enrollment token,这篇文章主要介绍了Docker创建enrollment token错误异常解析及解决方案,需要的朋友可以参考下
    2024-04-04
  • Docker部署BIind9 DNS服务器过程

    Docker部署BIind9 DNS服务器过程

    这篇文章主要介绍了Docker部署BIind9 DNS服务器过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • docker 中的–mount 和-v 参数区别解析

    docker 中的–mount 和-v 参数区别解析

    这篇文章主要介绍了docker 中的–mount 和-v 参数区别解析,--mount 更为灵活,适用于更复杂的挂载需求,使用哪种方式主要取决于个人或团队的偏好和具体的使用场景,需要的朋友可以参考下
    2023-12-12

最新评论