Java 项目从0到1搞定Docker部署SpringBoot项目
·
前言:Docker 是 Java 项目标准化打包、环境隔离、一键部署、集群管理的核心工具,能彻底解决"本地能跑,服务器跑不了"的问题。
一、让我们看看Docker 能给 Java 项目带来什么?
- 环境统一:开发、测试、生产用完全一样的 JDK、依赖、配置
- 一键部署:打包成镜像,任何装了 Docker 的机器都能直接运行
- 隔离性:多个 Java 项目互不干扰,端口、依赖、内存相互隔离
- 轻量:比虚拟机小得多,启动秒级,资源占用低
- 可迁移:镜像推送到仓库,随处拉取运行
二、Java 开发最常用的 Docker 命令
1. 必记命令:查看日志常用
docker ps # 看正在跑的容器
docker images # 看镜像
docker logs -f 容器名 # 看日志
2. 启动、停止及重启
#启动
docker run -d -p 宿主机端口:容器端口 --name 名字 镜像
#停止
docker stop 容器名
#启动已停止的容器
docker start 容器名
#未停止的容器 先停止再重启
docker restart 容器名
3. 进入容器内部
docker exec -it 容器名 /bin/bash
4. 删除、清理
docker rm 容器名 # 删除容器
docker rmi 镜像名 # 删除镜像
docker system prune # 一键清理垃圾
5. 构建镜像
docker build -t 镜像名:版本 .
三、实战场景:把 SpringBoot 项目打包成 Docker 镜像(重要,本篇比学技能)
1. 准备工作
- 一个可运行的 Java / SpringBoot 项目
- 服务器 / 本地已安装 Docker
- Maven/Gradle 打包好的
jar包
2. 编写 Dockerfile(核心文件)
在项目根目录创建 Dockerfile(无后缀名):
# 基础镜像:自带JDK17(根据你的项目版本选择)
FROM openjdk:17-jdk-slim
# 作者信息
MAINTAINER yourname
# 把本地jar包复制到容器内
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
# 容器启动命令:运行jar包
ENTRYPOINT ["java","-jar","/app.jar"]
# 可加入jvm参数优化
ENTRYPOINT ["java", "-Xms256m", "-Xmx512m", "-jar", "app.jar"]
说明:
FROM:指定基础环境(JDK)COPY:把编译好的 jar 放进容器ENTRYPOINT:容器启动时执行的命令;可加入jvm参数进行优化
3. 构建Docker 镜像
docker build -t 镜像名字 .
-t:给镜像起名字.:Dockerfile 所在目录
4. 运行容器
docker run -d \
--name 容器名称 \
-p 8080:8080 \
镜像名
-d:后台运行-p 宿主机端口:容器端口--name:容器名称
5. 访问项目
#浏览器访问
http://服务器IP:8080
总结
开发代码 → Maven打包 → 构建Docker镜像 → 推送到镜像仓库(Harbor/Docker Hub)
→ 测试/生产服务器拉取镜像 → 启动容器 → 运行服务
以上就是目前互联网公司标准的 Java 项目部署流程。Docker 让 Java 项目一键部署、随处运行,解决了环境隔离与部署难题。本文已完整覆盖Java项目Docker化的全流程。
随着Java微服务架构的普及,单一服务器的Docker部署已无法满足高可用、高并发的生产需求。此时,Docker与K8s(Kubernetes)的协同就成为了企业级部署的核心方案——Docker负责打包镜像、运行容器,K8s负责集群管理、自动扩缩容、故障自愈,完美适配多服务、高可用的微服务场景。下一篇将聚焦Java项目的K8s部署实战,从K8s环境搭建、Docker镜像推送,到Deployment配置、Pod管理,手把手教你搞定Java微服务的K8s集群部署,感兴趣的朋友可以持续关注~
更多推荐




所有评论(0)