要将Spring Boot项目打包到Docker镜像并映射端口

  1. 首先,确保已经在你的机器上安装了Docker。

  2. 在Spring Boot项目的根目录下创建一个名为Dockerfile的文件(没有扩展名),并使用文本编辑器打开它。

  3. Dockerfile中添加以下内容:

     # 使用一个Java基础镜像作为基础 
     FROM openjdk:11-jre-slim
     # 设置工作目录
     WORKDIR /app 
    # 将Spring Boot项目的JAR文件复制到容器中
     COPY target/your-project.jar app.jar 
    # 暴露容器的端口 
    EXPOSE 8080

注意将上述代码中的your-project.jar替换为你的Spring Boot项目的实际JAR文件名。

  1. 保存并关闭Dockerfile

  2. 打开终端或命令提示符,进入到Spring Boot项目的根目录。

  3. 在终端中执行以下命令来构建Docker镜像:

    docker build -t your-image-name:1.0.0 .

    your-image-name替换为你想要为镜像设置的名称。

    1.0.0替换为你想要为镜像设置的版本。

  4. 构建完成后,你可以运行以下命令来启动Docker容器,并将容器的8080端口映射到主机的某个端口(例如8888):

    docker run -p 8888:8080 your-image-name

    这将会在Docker容器中运行你的Spring Boot应用,并将容器的8080端口映射到主机的8888端口。

    现在,你可以通过访问http://localhost:8888来访问你的Spring Boot应用。

  5. 请注意,如果你在Docker运行时使用了不同的端口映射,应该相应地更改URL中的端口号

要在Docker容器中挂载目录,可以使用Docker命令的-v选项。以下是在运行Docker容器时如何挂载目录的步骤:

  1. 确保你已经创建了一个包含你要挂载的目录的文件夹。

  2. 使用以下命令来运行Docker容器,并将本地目录挂载到容器中:

    
    docker run -p 8888:8080 -v /本地目录的绝对路径:/容器内目录 your-image-name

    /本地目录的绝对路径替换为你要挂载的本地目录的绝对路径,/容器内目录替换为容器内要将本地目录挂载到的目标路径,your-image-name替换为你的镜像名称。

    1. 运行以上命令后,Docker会将本地目录与容器内的目标路径进行挂载。你的Spring Boot应用可以在容器中访问并操作挂载的目录。

    请注意,容器内的目标路径必须是存在于容器中的有效路径。如果目录不存在,Docker将自动为你创建它。

    例如,如果要将本地目录/home/user/app-data挂载到容器内的/app/data目录,命令将如下所示:

    docker run -p 8888:8080 -v /home/user/app-data:/app/data your-image-name

    现在,容器中的/app/data目录将与本地的/home/user/app-data目录进行同步。

    希望这能满足你的需求!如果你还有其他问题,请随时问我