千家信息网

怎么用Docker部署Spring Boot项目

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"怎么用Docker部署Spring Boot项目"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2026年11月02日怎么用Docker部署Spring Boot项目

本篇内容介绍了"怎么用Docker部署Spring Boot项目"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。

首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署。

一个简单 Spring Boot 项目

在 pom.xml 中 ,使用 Spring Boot 2.0 相关依赖


org.springframework.boot
spring-boot-starter-parent
2.0.0.RELEASE

添加 web 和测试依赖



org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-test
test


创建一个 DockerController,在其中有一个index()方法,访问时返回:Hello Docker!

@RestController
public class DockerController {

@RequestMapping("/")
public String index() {
return "Hello Docker!";
}
}

启动类

@SpringBootApplication
public class DockerApplication {

public static void main(String[] args) {
SpringApplication.run(DockerApplication.class, args);
}
}

添加完毕后启动项目,启动成功后浏览器访问:http://localhost:8080/,页面返回:Hello Docker!,说明 Spring Boot 项目配置正常。

Spring Boot 项目添加 Docker 支持

在 pom.xml-properties中添加 Docker 镜像名称


springboot

plugins 中添加 Docker 构建插件:




org.springframework.boot
spring-boot-maven-plugin



com.spotify
docker-maven-plugin
1.0.0

${docker.image.prefix}/${project.artifactId}
src/main/docker


/
${project.build.directory}
${project.build.finalName}.jar







在目录src/main/docker下创建 Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD spring-boot-docker-1.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

这个 Dockerfile 文件很简单,构建 Jdk 基础环境,添加 Spring Boot Jar 到镜像中,简单解释一下:

  • FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
  • VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
  • ADD ,拷贝文件并且重命名
  • ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

这样 Spring Boot 项目添加 Docker 依赖就完成了。

构建打包环境

我们需要有一个 Docker 环境来打包 Spring Boot 项目,在 Windows 搭建 Docker 环境很麻烦,因此我这里以 Centos 7 为例。

安装 Docker 环境

安装

yum install docker

安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

service docker start
chkconfig docker on

#LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service

使用Docker 中国加速器

vi  /etc/docker/daemon.json

#添加后:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}

重新启动docker

systemctl restart docker

输入docker version 返回版本信息则安装正常。

安装JDK

yum -y install java-1.8.0-openjdk*

配置环境变量 打开 vim /etc/profile添加一下内容

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export PATH=$PATH:$JAVA_HOME/bin

修改完成之后,使其生效

source /etc/profile

输入java -version 返回版本信息则安装正常。

安装MAVEN

下载:http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz

## 解压
tar vxf apache-maven-3.5.2-bin.tar.gz
## 移动
mv apache-maven-3.5.2 /usr/local/maven3

修改环境变量, 在/etc/profile中添加以下几行

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

记得执行source /etc/profile使环境变量生效。

输入mvn -version 返回版本信息则安装正常。

这样整个构建环境就配置完成了。

使用 Docker 部署 Spring Boot 项目

将项目 spring-boot-docker 拷贝服务器中,进入项目路径下进行打包测试。

#打包
mvn package
#启动
java -jar target/spring-boot-docker-1.0.jar

看到 Spring Boot 的启动日志后表明环境配置没有问题,接下来我们使用 DockerFile 构建镜像。

mvn package docker:build

第一次构建可能有点慢,当看到以下内容的时候表明构建成功:

...
Step 1 : FROM openjdk:8-jdk-alpine
---> 224765a6bdbe
Step 2 : VOLUME /tmp
---> Using cache
---> b4e86cc8654e
Step 3 : ADD spring-boot-docker-1.0.jar app.jar
---> a20fe75963ab
Removing intermediate container 593ee5e1ea51
Step 4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 85d558a10cd4
---> 7102f08b5e95
Removing intermediate container 85d558a10cd4
Successfully built 7102f08b5e95
[INFO] Built springboot/spring-boot-docker
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 54.346 s
[INFO] Finished at: 2018-03-13T16:20:15+08:00
[INFO] Final Memory: 42M/182M
[INFO] ------------------------------------------------------------------------

使用docker images命令查看构建好的镜像:

docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot/spring-boot-docker latest 99ce9468da74 6 seconds ago 117.5 MB

springboot/spring-boot-docker 就是我们构建好的镜像,下一步就是运行该镜像

docker run -p 8080:8080 -t springboot/spring-boot-docker

启动完成之后我们使用docker ps查看正在运行的镜像:

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
049570da86a9 springboot/spring-boot-docker "java -Djava.security" 30 seconds ago Up 27 seconds 0.0.0.0:8080->8080/tcp determined_mahavira

可以看到我们构建的容器正在在运行,访问浏览器:http://192.168.0.x:8080/,返回

Hello Docker!

说明使用 Docker 部署 Spring Boot 项目成功!

示例代码 :https://github.com/ityouknow/spring-boot-examples

"怎么用Docker部署Spring Boot项目"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

项目 环境 镜像 文件 目录 内容 配置 成功 信息 变量 命令 容器 版本 支持 服务 输入 运行 接下来 基础 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 互联网络科技 中关村互联网科技集团 广州互联网科技公司 亿账通互联网科技 互联网金融科技委员会 中国的互联网科技企业的崛起 中国互联网有什么科技含量 昭通云南众福互联网科技有限公司 互联网时代科技改变生活 想开互联网科技公司怎么样 特约风豹互联网科技为什么扣费 互联网科技实习生岗位 郑州欣桑互联网科技有限公司 昆明中奇联合互联网科技 互联网科技机房 福仕德教育科技互联网 美国五大互联网科技公司市值多少 华人运通互联网科技公司 恒生科技互联网指数十大成分股 保险科技 互联网保险 互联网和科技技术 互联网科技咨询 科技大学互联网专业好不好 蓝色互联网科技 恒生互联网科技指数跳水 银川新华互联网科技学校联系电话 华夏恒生科技与互联网科技 北京天晋互联网科技有限公司 华人运通互联网科技公司
0