Linux Docker运行springboot项目的步骤详解

Linux Docker 运行 Spring Boot 项目的步骤详解

简介

本文将介绍在 Linux 系统中使用 Docker 容器运行 Spring Boot 项目的详细步骤。通过使用 Docker 容器,我们可以提高开发的效率,同时也可以避免因本地环境不兼容而导致的问题。

步骤

步骤一:创建 Spring Boot 项目

首先,我们需要创建一个 Spring Boot 项目。这里通过 Spring Initializr 创建一个基于 Gradle 的项目,其它配置按需选择即可。

$ mkdir docker-spring-boot
$ cd docker-spring-boot
$ curl https://start.spring.io/starter.zip -d dependencies=web,devtools \
  -d type=gradle-project \
  -d packageName=com.example.docker \
  -o docker-spring-boot.zip
$ unzip docker-spring-boot.zip

步骤二:编写 Dockerfile 文件

在项目根目录下创建一个 Dockerfile 文件,其中包含了打包 Spring Boot 应用的所有步骤。

# 基于 openjdk:8-jdk-alpine 镜像构建
FROM openjdk:8-jdk-alpine

# 复制应用构建产物到镜像中
COPY build/libs/*.jar app.jar

# 设置启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

首先,我们在 Dockerfile 文件中使用 FROM 关键字来设置构建镜像的基础镜像。这里我们选择了 openjdk:8-jdk-alpine,该镜像基于 Alpine Linux 发行版,提供了 JDK 8 和一些常用的工具,镜像体积较小,非常适合作为基础镜像。

然后,我们使用 COPY 关键字将构建产物复制到镜像中。这里我们假定我们的 Spring Boot 应用已经经过 ./gradlew build 构建,并将应用构建产物放在了 build/libs 目录下。

最后,我们使用 ENTRYPOINT 关键字设置容器启动命令,其中 java -jar /app.jar 表示启动 Spring Boot 应用。

步骤三:构建 Docker 镜像

在编写完成 Dockerfile 文件后,我们需要使用 docker build 命令来构建 Docker 镜像。

$ docker build -t docker-spring-boot .

该命令中的 -t 参数用于指定构建后的镜像名称,. 表示 Dockerfile 文件所在的目录。

步骤四:运行 Docker 容器

完成 Docker 镜像的构建后,我们可以使用 docker run 命令来启动容器。

$ docker run --name docker-spring-boot -p 8080:8080 docker-spring-boot

该命令中的 --name 参数用于指定容器名称,-p 参数用于指定容器暴露的端口号。这里我们将容器内部的 8080 端口映射到主机的 8080 端口。

示例一:使用 Gradle 构建 Spring Boot 项目并在 Docker 中运行

$ mkdir docker-spring-boot
$ cd docker-spring-boot
$ curl https://start.spring.io/starter.zip -d dependencies=web,devtools \
  -d type=gradle-project \
  -d packageName=com.example.docker \
  -o docker-spring-boot.zip
$ unzip docker-spring-boot.zip
$ cd docker-spring-boot
$ ./gradlew build
$ cd ..
$ echo "FROM openjdk:8-jdk-alpine\nCOPY docker-spring-boot/build/libs/*.jar app.jar\nENTRYPOINT [\"java\",\"-jar\",\"/app.jar\"]" > Dockerfile
$ docker build -t docker-spring-boot .
$ docker run --name docker-spring-boot -p 8080:8080 docker-spring-boot

示例二:使用 Maven 构建 Spring Boot 项目并在 Docker 中运行

$ mkdir docker-spring-boot
$ cd docker-spring-boot
$ curl https://start.spring.io/starter.zip -d dependencies=web,devtools \
  -d type=maven-project \
  -d packageName=com.example.docker \
  -o docker-spring-boot.zip
$ unzip docker-spring-boot.zip
$ cd docker-spring-boot
$ ./mvnw package
$ cd ..
$ echo "FROM openjdk:8-jdk-alpine\nCOPY docker-spring-boot/target/*.jar app.jar\nENTRYPOINT [\"java\",\"-jar\",\"/app.jar\"]" > Dockerfile
$ docker build -t docker-spring-boot .
$ docker run --name docker-spring-boot -p 8080:8080 docker-spring-boot

结论

本文介绍了在 Linux 系统中使用 Docker 容器运行 Spring Boot 项目的详细步骤,并给出了基于 Gradle 和 Maven 两种构建工具的示例。通过使用 Docker 容器,我们可以提高开发的效率,同时也可以避免因本地环境不兼容而导致的问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux Docker运行springboot项目的步骤详解 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 详解Linux 虚拟机根分区磁盘扩充空间记录

    详解Linux 虚拟机根分区磁盘扩充空间记录 当我们的Linux虚拟机的根分区磁盘空间不足时,我们需要进行扩充。下面是一份详细的攻略,让您轻松处理这个问题。 1. 查看当前磁盘空间使用情况 在进行磁盘扩充之前,我们需要确保知道当前的磁盘使用情况。通过如下的命令可以查看根分区的磁盘使用情况。 df -h 运行命令后,会显示所有分区的磁盘使用情况。其中,包括我们…

    Linux 2023年5月24日
    00
  • Linux网络搭建基础实验(1)

    首先让我们来介绍一下“Linux网络搭建基础实验(1)”的完整攻略。它是一篇基于Linux系统的网络搭建实验攻略,主要内容包括构建虚拟机、配置网络参数、设置防火墙等。 以下是该攻略的详细步骤: 1. 构建虚拟机 首先需要构建两台Linux虚拟机,一台作为服务器端,另一台作为客户端。可以使用VMware或VirtualBox等虚拟化软件,具体构建步骤在此不再赘…

    Linux 2023年5月24日
    00
  • VMware虚拟软件使用方法、网络配置与远程连接排错方法

    VMware虚拟软件使用方法、网络配置与远程连接排错方法 一、虚拟软件使用方法 1. 软件启动方法 系统当中有些软件是可以多次启动,多实例 vmware不具有多实例功能 2. 软件关闭注意事项 尽量选择挂起虚拟主机关闭软件 3. 虚拟主机拍快照(后悔药 月光宝盒) 4. 虚拟主机删除方法 右键点击虚拟主机–管理–从磁盘中删除虚拟主机(建议主机关闭状态进行…

    Linux 2023年4月10日
    00
  • 008_Linux驱动之_IO口的配置

    1. 测试:配置S3C2440的GPF4,5,6为输出 2. 测试IO的地址从芯片手册中获取以下资料     3. 从上面可以看出配置输出对应的设置是01=输出,那么对应位如:[9:8]需要设置成=01 4. 解析配置之前我们需要先将对应IO使用命令“&”设置成00,然后使用命令“|”设置成01 5. 则可使用命令   GPFCON &= ~…

    Linux 2023年4月11日
    00
  • Ubuntu Linux 上安装TomCat的过程

    1. 从TomCat官网上下载二进制安装包,http://tomcat.apache.org/download-70.cgi。我下载到是apache-tomcat-7.0.39.tar.gz。2. 我按照这里http://www.linuxidc.com/Linux/2011-08/40787p2.htm所讲的来安装到。3. 将apache-tomcat-7…

    Linux 2023年4月11日
    00
  • linux android 下源码编译问题总结(一)

    对于各种包的安装和解压命令 tar格式#tar -zxvf  *****.tar.gz(tar -xf  *****.tar)#./configure#make#make install rpm包 #rpm -ivh *****.rpm  (安装)#rpm -Uvh *****rpm(升级,只对已经安装了rpm包的) :em11   安装包 sudo apt…

    Linux 2023年4月11日
    00
  • Ubuntu Linux下通过代理(proxy)使用git上github.com

    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/loveaborn/article/details/24575659 github.com。作为程序猿的代码仓库。我们常常会用到。 但有时候我们不能直接通过网络链接它,仅仅能通过代理。 这里我有一台代理服务器,起初我以为在终端设置了代理环境即可了,其设置为在你的…

    Linux 2023年4月12日
    00
  • Linux 双网卡配置两个IP同时只有一个会通的原因

    http://blog.csdn.net/centerpoint/article/details/38542719   根本原因: Linux默认启用了反向路由检查 如果2个网卡在一个Lan里面,那么服务器可能从eth0或者eth1发现网关, 如果一个包从eth0进入了, 而网关在eth1上, 那么从eth1是出不去的, 就不通了.  反向路由检查要求从哪里…

    Linux 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部