首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker 部署 SpringBoot 项目超详细教程

Docker 部署 SpringBoot 项目超详细教程

作者头像
SmileNicky
发布2026-05-16 08:11:49
发布2026-05-16 08:11:49
430
举报
文章被收录于专栏:Nicky's blogNicky's blog

Docker 部署 SpringBoot 项目超详细教程

一篇适合新手的 Docker 部署 SpringBoot 实战教程,包含:

  • Docker 安装
  • 镜像加速
  • SpringBoot 打包
  • Dockerfile 编写
  • 构建镜像
  • 容器部署
  • 日志查看
  • 防火墙开放
  • 常见问题解决

图文并茂,保姆级教学。

本文假设你已拥有一台安装了 Docker 的 CentOS 8 服务器,直接聚焦于如何将 SpringBoot 应用打包成 Docker 镜像并运行。 全程提供清晰的操作步骤与生产环境建议,新手也能无痛上手。


一、Docker 核心概念速览

概念

说明

类比

镜像(Image)

包含应用及其运行环境的只读模板

安装包

容器(Container)

镜像的运行实例

运行中的程序

Dockerfile

构建镜像的步骤描述文件

安装说明书

Docker 架构示意图
Docker 架构示意图

二、准备工作:项目 jar 包

  1. 在本地通过 mvn package 打包 SpringBoot 项目,生成可执行 jar 文件(例如 springboot-ai-chatbot-0.0.1-SNAPSHOT.jar)。
  2. 在服务器上创建专属目录,并将 jar 上传到此目录。
代码语言:javascript
复制
mkdir -p /usr/local/springboot-ai-chatbot
cd /usr/local/springboot-ai-chatbot
# 通过 SFTP 等工具将 jar 包上传至此

三、编写 Dockerfile

在项目目录下创建 Dockerfile 文件:

代码语言:javascript
复制
vi Dockerfile

填入以下内容:

代码语言:javascript
复制
# jdk
FROM eclipse-temurin:17
# 作者
LABEL maintainer="nicky"
# 工作目录
WORKDIR /app
# 拷贝 jar
COPY springboot-ai-chatbot-0.0.1-SNAPSHOT.jar app.jar
# 暴露端口
EXPOSE 8080
# 时区(可选)
ENV TZ=Asia/Shanghai
# 启动命令
ENTRYPOINT ["java","-jar","/app/app.jar"]

逐行解释:

  • FROM:选择 Amazon Corretto 17 镜像,体积小且包含 JDK17。
  • WORKDIR:指定工作目录,后续命令均在该目录下执行。
  • COPY:将宿主机上的 jar 拷贝进镜像。
  • EXPOSE:告知 Docker 容器内应用监听 8080 端口。
  • ENTRYPOINT:容器启动时执行 java -jar app.jar 启动应用。

四、构建 Docker 镜像

Dockerfile 所在目录执行:

代码语言:javascript
复制
docker build -t springboot-ai-chatbot:1.0 .

注意命令末尾的 . 表示使用当前目录作为构建上下文,不可省略

构建成功后,查看本地镜像:

代码语言:javascript
复制
docker images

输出示例:

代码语言:javascript
复制
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE
springboot-ai-chatbot    1.0       abc123def456   10 seconds ago   350MB
在这里插入图片描述
在这里插入图片描述

五、运行容器

使用以下命令启动容器:

代码语言:javascript
复制
docker run -d \
  --name springboot-ai-chatbot \
  -p 8080:8080 \
  --restart=always \
  springboot-ai-chatbot:1.0

参数详解:

参数

作用

-d

后台运行容器

--name

为容器起一个名字,便于后续管理

-p 宿主机端口:容器端口

将宿主机 8080 端口映射到容器 8080 端口

--restart=always

容器异常退出或 Docker 重启后自动拉起容器

检查容器是否正常运行:

代码语言:javascript
复制
docker ps

看到 STATUSUp 即表示成功。

在这里插入图片描述
在这里插入图片描述

六、验证部署与查看日志

6.1 访问应用

在浏览器中访问 http://服务器IP:8080。 若无法访问,请先开放防火墙端口:

代码语言:javascript
复制
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
6.2 查看实时日志
代码语言:javascript
复制
docker logs -f springboot-ai-chatbot

当终端出现 Started XxxApplication 字样时,说明 SpringBoot 启动成功。

查看日志示意图
查看日志示意图

七、生产环境优化:目录挂载

将容器内的日志和配置文件目录挂载到宿主机,便于持久化和动态调整配置。

先创建宿主机目录:

代码语言:javascript
复制
mkdir -p /usr/local/springboot-ai-chatbot/{logs,config}

重新启动容器时加入 -v 参数:

代码语言:javascript
复制
# 先删除旧容器
docker rm -f springboot-ai-chatbot

# 带挂载启动
docker run -d \
  --name springboot-ai-chatbot \
  -p 8080:8080 \
  -v /usr/local/springboot-ai-chatbot/logs:/app/logs \
  -v /usr/local/springboot-ai-chatbot/config:/app/config \
  --restart=always \
  springboot-ai-chatbot:1.0
  • /app/logs 目录挂载后,应用日志会直接写入宿主机,方便日志收集。
  • /app/config 目录可放入 application.yml,修改后重启容器即可应用新配置。

八、常用 Docker 管理命令

操作

命令

查看运行中容器

docker ps

停止容器

docker stop springboot-ai-chatbot

启动已停止的容器

docker start springboot-ai-chatbot

重启容器

docker restart springboot-ai-chatbot

强制删除容器

docker rm -f springboot-ai-chatbot

删除镜像

docker rmi springboot-ai-chatbot:1.0

进入容器内部调试

docker exec -it springboot-ai-chatbot /bin/bash


九、常见问题排查

1. 构建镜像时拉取基础镜像超时

现象i/o timeout 解决:为 Docker 配置国内镜像加速。编辑 /etc/docker/daemon.json,添加:

代码语言:javascript
复制
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com"
  ]
}

然后重启 Docker:systemctl restart docker

2. 端口无法访问
  • 检查容器是否运行:docker ps
  • 检查防火墙:firewall-cmd --list-ports,确保 8080 已放行
  • 确认端口映射正确:docker port springboot-ai-chatbot
3. 容器启动后立即退出

使用 docker logs springboot-ai-chatbot 查看错误信息,常见原因包括:jar 包损坏、端口冲突、数据库连接失败等,根据日志提示修正后重新构建镜像即可。


十、总结

Docker 部署 SpringBoot 项目的核心流程仅需四步:

代码语言:javascript
复制
编写 Dockerfile → docker build → docker run → docker logs 验证

掌握这一流程后,你不仅能轻松部署单体应用,还将为后续微服务、CI/CD 流水线、Kubernetes 容器编排打下坚实基础。


如果觉得教程有用,欢迎分享给更多需要的小伙伴!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 部署 SpringBoot 项目超详细教程
    • 一、Docker 核心概念速览
    • 二、准备工作:项目 jar 包
    • 三、编写 Dockerfile
    • 四、构建 Docker 镜像
    • 五、运行容器
    • 六、验证部署与查看日志
      • 6.1 访问应用
      • 6.2 查看实时日志
    • 七、生产环境优化:目录挂载
    • 八、常用 Docker 管理命令
    • 九、常见问题排查
      • 1. 构建镜像时拉取基础镜像超时
      • 2. 端口无法访问
      • 3. 容器启动后立即退出
    • 十、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档