首先将配置文件的数据库、redis等各种配置修改为自己的服务器地址,然后在maven中运行package进行打包
打包完毕后控制台输出BUILD SUCCESS,在target目录下多出一个jar包
将 jar包复制到一个目录下,然后cd到这个目录
添加一个Dockerfile文件(这里的jdk-17.0.12是我自己下载的,跟这个jar包在同一个目录,你也可以使用docker pull jdk去拉取一个jdk镜像),然后将所有的demo-0.0.1-SNAPSHOT.jar修改为你自己的jar包名称,EXPOSE 8081是后端端口号
# 使用轻量级基础镜像
FROM debian:bullseye-slim
# 将本地 JDK 复制到镜像中
COPY jdk-17.0.12 /usr/local/java/jdk-17.0.12
# 设置 JAVA_HOME 和 PATH 环境变量
ENV JAVA_HOME=/usr/local/java/jdk-17.0.12
ENV PATH=$JAVA_HOME/bin:$PATH
# 设置容器工作目录为 /app
WORKDIR /app
# 复制本地 JAR 文件到容器中
COPY demo-0.0.1-SNAPSHOT.jar /app/demo-0.0.1-SNAPSHOT.jar
# 设置环境变量 JAR_FILE,方便运行时引用
ENV JAR_FILE=demo-0.0.1-SNAPSHOT.jar
# 暴露容器的 8081 端口
EXPOSE 8081
# 启动容器时,运行 Java 应用
ENTRYPOINT ["java", "-jar", "/app/demo-0.0.1-SNAPSHOT.jar"]
然后执行打包镜像命令,等待打包
打包镜像
docker build -t myimage_name:1.1 .
打包完毕后输入docker images查看刚才的镜像
创建容器
#myps_name是自己设置的容器名,myimage_name是你的镜像名
#-p 8081:8081代表宿主机的8081端口(前面的端口号)映射到容器内的8081端口(后面的端口号)
docker run --name myps_name -p 8085:8081 -d myimage_name
如果报错找不到这个镜像,那就执行
docker run --name exctest -p 8085:8081 -d d68ddc3ef5ff
d68ddc3ef5ff是镜像的id,每一个镜像都有唯一的一个id,可通过docker images查看自己的镜像id
然后通过docker ps查看是否存在刚才的容器