在开始制作Docker镜像之前,我们需要确保已经安装了Docker,接下来,我们将创建一个简单的SpringBoot(2.3)应用,并将其打包成一个可执行的JAR文件,以下是创建一个简单的SpringBoot应用的步骤:

1、创建一个新的Maven项目,并在pom.xml文件中添加以下依赖:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin
2、在src/main/java目录下创建一个名为Application.java的文件,并添加以下代码:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3、在src/main/resources目录下创建一个名为application.properties的文件,并添加以下内容:
server.port=8080
4、在项目根目录下运行以下命令,以打包应用为可执行的JAR文件:
mvn clean package
接下来,我们需要创建一个Dockerfile,用于构建包含我们的SpringBoot应用的Docker镜像,在项目根目录下创建一个名为Dockerfile的文件,并添加以下内容:
使用官方的Java运行时基础镜像 FROM openjdk:8-jdk-alpine as build-stage 将项目的jar文件复制到容器中的/app目录下,并设置工作目录为/app COPY target/demo-0.0.1-SNAPSHOT.jar /app/demo.jar WORKDIR /app ENTRYPOINT ["java","-jar","/app/demo.jar"]
在项目根目录下运行以下命令,以构建包含我们的SpringBoot应用的Docker镜像:
docker build -t my-springboot-app --build-arg JAR_FILE=target/demo-0.0.1-SNAPSHOT.jar .
运行以下命令,以启动一个新的Docker容器,并查看其日志输出:
docker run -d --name my-springboot-container my-springboot-app > logs.txt & tail -f logs.txt & wait $! 将日志输出重定向到logs.txt文件,并实时查看其内容(需要按Ctrl+C停止查看)
1、Q:如何在Docker容器中运行多个实例?A:可以使用docker run命令多次启动容器,docker run -d --name my-springboot-container1 my-springboot-app && docker run -d --name my-springboot-container2 my-springboot-app,这将同时启动两个名为my-springboot-container1和my-springboot-container2的容器。