1.首先准备一个jdk8的镜像做基础镜像

2.制作Dockerfile 文件

#使用基础镜像
FROM openjdk:8



#暴露端口
EXPOSE 8083
# 容器启动时执行启动应用的脚本
CMD ["sh","-c","/data/dockertest/startup.sh"]

3./data/dockertest 目录下的内容

docker启动jar包日志文件缺少报错信息 dockerfile jar包_jar

 配置文件在 config目录下面

 4. startup.sh 脚本内容

#!/bin/bash
cd /data/dockertest && /data/dockertest/jdk1.8.0_371/bin/java -jar myblog-web-0.0.1-SNAPSHOT.jar --spring.config.location=config/ --spring.profiles.active=dev

这个命令是一个多条命令组合,并包含了两个部分:

第一部分是 cd /data/dockertest,它将当前工作目录更改为 /data/dockertest。这样,在执行后续命令时,会在该目录下进行操作。

第二部分是 /data/dockertest/jdk1.8.0_371/bin/java -jar myblog-web-0.0.1-SNAPSHOT.jar --spring.config.location=config/ --spring.profiles.active=dev。在此部分,使用 Java 8 的路径来运行 myblog-web-0.0.1-SNAPSHOT.jar JAR 文件,并通过命令行参数设置了 Spring Boot 配置。

其中,--spring.config.location=config/ 指定了配置文件的位置为相对路径 config/,表示在当前工作目录下的 config/ 目录中查找配置文件。

另外,--spring.profiles.active=dev 设置活动配置文件为 "dev" 环境。

请确保:

  • /data/dockertest/jdk1.8.0_371/bin/java 是正确的 Java 8 安装路径。
  • myblog-web-0.0.1-SNAPSHOT.jar 是正确的应用程序 JAR 文件路径和文件名。
  • config/ 目录中包含您需要的配置文件。

运行此命令后,应用程序将在指定的环境("dev")下启动,并加载位于 config/ 目录中的配置文件。

5. 制作docker镜像

在于Dockerfile的同级目录   

docker build -f ./Dockerfile . -t 镜像名称:版本号 

docker images 查看是否创建成功

6.启动容器

docker run -d --name blog1.0 -p 8083:8083 -v /data/dockertest:/data/dockertest blog:1.0

这个命令是用于在 Docker 中运行一个名为 "blog:1.0" 的容器,并指定了一些参数配置。

解释一下每个参数的含义:

  • -d: 后台模式(detached mode),容器将在后台运行。
  • --name blog1.0: 为容器指定一个名称,此处为 "blog1.0"。
  • -p 8083:8083: 将主机的端口 8083 映射到容器的端口 8083。这样,可以通过访问主机的 8083 端口来访问容器中运行的应用程序。
  • -v /data/dockertest:/data/dockertest: 将主机的 /data/dockertest 目录挂载到容器的 /data/dockertest 目录。这样做可以实现主机和容器之间的文件共享,容器中对 /data/dockertest 的操作会反映到主机上。
  • blog:1.0: 指定要基于的镜像名称及标签。

请确保 /data/dockertest 目录存在,并且包含正确的应用程序 JAR 文件以及所需的其他文件。

运行此命令后,Docker 将创建并运行名为 "blog1.0" 的容器,并将主机的端口 8083 映射到容器的端口 8083。同时,主机的 /data/dockertest 目录将与容器的 /data/dockertest 目录进行文件共享。

7 验证是否成功

docker logs -f --tail=200 blog1.0

docker启动jar包日志文件缺少报错信息 dockerfile jar包_jar_02

 启动成功