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中basename和dirname命令的妙用

    有同学问,如何/dir1/dir2/dir3/file中的,前半部分:/dir1/dir2/dir3和最后部分file,这个用字符串分隔及${str//}来处理还比较难办,这个时候basename和dirname命令就很方便了。 [dirname] 手册页“Print NAME with its trailing /component removed; if…

    Linux 2023年4月13日
    00
  • Ubuntu虚拟机下使用cutecom进行串口通信的方法

    下面是Ubuntu虚拟机下使用cutecom进行串口通信的方法的完整攻略,包含以下内容: 一、安装cutecom Ubuntu系统中可以使用apt-get命令进行安装: sudo apt-get update sudo apt-get install cutecom 二、设置串口参数 打开cutecom,点击“打开”按钮,在“串口”选项卡下选择需要通信的串口…

    Linux 2023年5月24日
    00
  • 工作中常用的Linux命令:mkdir命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处)   在Linux系统中,mkdir命令用来创建一个目录或一个级联目录。 1. 命令格式   mkdir [选项] 目录名 2. 命令选项   -m=mode     为目录指定访问权限,与chmod类似。   -p  如果目录已…

    Linux 2023年4月12日
    00
  • 虚拟机中linux使用本地iso作为yum源的方法

    使用本地iso作为yum源是在虚拟机开发环境中经常使用的方法之一,可以避免在安装软件、更新系统等操作时耗费大量时间等问题。以下是虚拟机中使用本地iso作为yum源的详细攻略: 步骤一:挂载iso文件 首先需要将要使用的iso文件下载并挂载到虚拟机上,这一步可以通过在虚拟机中使用命令行操作完成,以下是一个简单示例: mkdir /mnt/cdrom mount…

    Linux 2023年5月24日
    00
  • 示例:iptables限制ssh链接服务器

    linux服务器默认通过22端口用ssh协议登录,这种不安全。今天想做限制,即允许部分来源ip连接服务器。 案例目标:通过iptables规则限制对linux服务器的登录。 处理方法:编写为sh脚本,以便多次执行。iptables.sh : iptables -I INPUT -p tcp –dport 22 -j DROP -m comment –co…

    Linux 2023年4月8日
    00
  • Linux命令之—tar

    命令简介: 打包:打包是指将一大堆文件或目录变成一个总的文件; 压缩:压缩则是将一个大的文件通过一些压缩算法变成一个小文件。 这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令),linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们称为tar包,tar包文件的命令…

    Linux 2023年4月13日
    00
  • [linux] 进程五状态模型

    运行态:该进程正在执行;就绪态:进程做好了准备,只要有机会就开始执行;阻塞态:进程在某些事件发生前不能执行,如I/O 操作完成;新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。通常是进程控制块已经创建但还没有加载到内存中的新进程;退出态:操作系统从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。   进程的三态转…

    Linux 2023年4月13日
    00
  • CentOS 7 安装Chrome浏览器的方法

    以下是详细的“CentOS7安装Chrome浏览器的方法”攻略: 1. 下载Chrome浏览器 首先,我们需要在Chrome官网上下载Chrome浏览器的安装包,具体下载链接可以根据自己的系统版本进行选择。在此不再赘述。 2. 安装依赖 在安装Chrome之前,需要安装一些依赖包,以确保安装的顺利完成。在终端中运行以下命令: sudo yum install…

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