千家信息网

Docker容器化spring boot应用的示例分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"Docker容器化spring boot应用的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Docker容器化sprin
千家信息网最后更新 2026年11月03日Docker容器化spring boot应用的示例分析

这篇文章主要为大家展示了"Docker容器化spring boot应用的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Docker容器化spring boot应用的示例分析"这篇文章吧。

前置条件

容器化spring boot应用所需环境:

  1. jdk 1.8 +

  2. maven 3.0 +

我们的需求是:使用maven打包,将spring boot应用制作成docker镜像并上传到docker hub。在其他机器上,可以直接docker pull并运行容器。

创建spring boot应用

spring boot 包结构为:

└── src  └── main    └── java      └── me        └── ithakar

创建spring boot Application主类,src/main/java/me/ithakar/Application.java

package me.ithakar;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class Application {  @RequestMapping("/")  public String home() {    return "docker app running";  }  public static void main(String[] args) {    SpringApplication.run(Application.class, args);  }}

pom.xml:

  4.0.0  me.ithakar  docker-app  0.1.0      org.springframework.boot    spring-boot-starter-parent    1.5.3.RELEASE        1.8              org.springframework.boot      spring-boot-starter-web              org.springframework.boot      spring-boot-starter-test      test                          org.springframework.boot        spring-boot-maven-plugin            

打包并启动应用

mvn package && java -jar target/docker-app-0.1.0.jar

访问 http://localhost:8080/ ,获得响应:

docker app running

则spring boot应用启动成功

创建Dockerfile文件

Dockerfile是一个文本文件,类似shell脚本,其内包含了一条条的指令。每一条指令的内容,就是描述对应的镜像层应当如何构建。

Dockerfile位置:src/main/docker/Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD docker-app-0.1.0.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
  1. FROM 命令指定基础镜像,以一个镜像为基础,在其上进行定制。在这里我们的基础镜像是frolvlad/alpine-oraclejdk8:slim。

  2. VOLUME 定义匿名卷。对于可能需要操作数据库类需要保存动态数据的应用,其数据文件应该保存在主句的卷,而不是容器的储存层。在这里我们是将其挂载在了/tmp这个位置,从而保证了容器的无状态化。

  3. ADD 命令是较高级的复制命令,将jar包复制到/app.jar

  4. ENTRYPOINT 容器运行后默认执行的命令

添加maven docker插件

docker maven插件是为了方便java开发者,由spotify公司开发的一款maven插件。添加以下代码至pom.xml文件中。

  ithaka            com.spotify      docker-maven-plugin      0.4.11              ${docker.image.prefix}/${project.artifactId}:${project.version}        src/main/docker        true                              /            ${project.build.directory}            ${project.build.finalName}.jar                              

注意,docker.image.prefix中的ithaka为我的docker hub 账户,使用时将其换成自己的

使用maven命令打包应用、构建docker镜像并上传镜像到docker hub:

mvn package docker:build -DpushImage

此时我们将得到一个报错:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.11:build (default-cli) on project docker-app: Exception caught: denied: requested access to the resource is denied

这是因为我们在maven中push时,并没有包含docker的用户信息,所以权限校验失败。

解决方法为,在maven全局setting.xml配置中,添加docker hub server信息

    docker-hub    ithaka    密码          邮箱    

在pom.xml中的docker-maven-plugi插件中,指定server

  com.spotify  docker-maven-plugin      docker-hub  

再继续执行

mvn package docker:build -DpushImage

出现

The push refers to a repository [docker.io/ithaka/docker-app]
8c02854cd300: Pushed
a03c3b5dbe04: Pushed
8018d52798bb: Pushed
1e6468b956ae: Pushed
3fb66f713c9f: Pushed

0.0.1: digest: sha256:63456345745755577c19103dcf4838894e34d45a68a1ec23b2f69d6f059 size: 1375

即为上传docker hub成功。

启动docker容器

在另外一台机器上,执行命令

docker run -p 8080:8080 -t ithaka/docker-app

访问http://ip:8080/ ,获得响应:

docker app running

docker应用启动成功

以上是"Docker容器化spring boot应用的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

应用 容器 命令 镜像 内容 插件 文件 示例 分析 成功 基础 数据 篇文章 位置 信息 指令 机器 学习 帮助 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技公司经营范围 苏州找大状互联网科技有限公司 广州百单互联网科技有限公司 互联网科技与金融科技 互联网络科技有限公司 互联网科技网站 狮子座互联网科技培训 互联网科技大会 一五八零互联网科技 中国最先进互联网科技公司 农村开互联网科技讲堂 隆华科技工业互联网 宜昌元轩互联网科技有限公司 玉溪互联网科技怎么选 互联网科技扶贫时间 互联网科技年终奖 互联网科技手抄报图片 第三届互联网大会安防黑科技 黑龙江互联网科技公司 深圳齐家互联网科技 广州紫鲸互联网科技 深圳卡尔迅互联网科技有限公司怎么样 浙江互联网科技研学营 杭州壁岐互联网科技有限公司 深圳市罗太互联网科技有限公司 区块链结合互联网科技 互联网相关科技技术 六子台科技互联网展会 前海云享互联网科技
0