1.首先准备一个jdk8的镜像做基础镜像
2.制作Dockerfile 文件
#使用基础镜像
FROM openjdk:8
#暴露端口
EXPOSE 8083
# 容器启动时执行启动应用的脚本
CMD ["sh","-c","/data/dockertest/startup.sh"]3./data/dockertest 目录下的内容

配置文件在 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

启动成功
















