docker怎么运行jar包

在Windows的Docker中运行JAR包有以下几种方式:

方法一:使用Dockerfile构建镜像

  1. 创建Dockerfile(与JAR包同一目录):

    使用OpenJDK官方镜像

    FROM openjdk:8-jre-alpine

    或者使用其他版本:FROM openjdk:11-jre-slim

    创建工作目录

    WORKDIR /app

    复制JAR包到容器中

    COPY your-app.jar app.jar

    暴露端口(根据你的应用端口修改)

    EXPOSE 8080

    运行JAR包

    ENTRYPOINT ["java", "-jar", "app.jar"]

  2. 构建Docker镜像

    docker build -t my-java-app .

  3. 运行容器

    docker run -d -p 8080:8080 --name java-container my-java-app

方法二:直接挂载运行(开发环境推荐)

复制代码
# 将宿主机的JAR包挂载到容器中运行
docker run -d -p 8080:8080 -v "C:\path\to\your\jar:/app" openjdk:8-jre-alpine java -jar /app/your-app.jar

方法三:使用Docker Compose

创建 docker-compose.yml文件:

复制代码
version: '3.8'
services:
  java-app:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - ./logs:/app/logs  # 挂载日志目录
    environment:
      - SPRING_PROFILES_ACTIVE=prod

运行:docker-compose up -d

常用参数说明

复制代码
# 指定JVM参数
docker run -d -p 8080:8080 my-java-app java -Xmx512m -jar app.jar

# 挂载配置文件
docker run -d -p 8080:8080 -v "C:\config:/config" my-java-app

# 设置环境变量
docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=prod" my-java-app

实用技巧

  1. 多阶段构建(减少镜像大小):

    FROM maven:3.6.3-jdk-8 AS builder
    WORKDIR /app
    COPY . .
    RUN mvn clean package

    FROM openjdk:8-jre-alpine
    COPY --from=builder /app/target/*.jar app.jar
    ENTRYPOINT ["java", "-jar", "app.jar"]

  2. 健康检查

    HEALTHCHECK --interval=30s --timeout=3s
    CMD curl -f http://localhost:8080/health || exit 1

注意事项

  • 确保Windows上的Docker Desktop已启动

  • 路径使用正斜杠 /或双反斜杠 \\

  • 检查防火墙设置,确保端口可访问

  • 考虑使用 .dockerignore文件排除不必要的文件

选择哪种方式取决于你的具体需求:开发调试推荐方法二,生产环境推荐方法一。

相关推荐
8***B1 小时前
Docker虚拟现实案例
docker·容器·vr
q***42822 小时前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
J***Q2924 小时前
Docker镜像多平台构建
运维·docker·容器
c***97984 小时前
Docker音频处理案例
运维·docker·容器
永远的超音速4 小时前
Docker入门
docker·电脑
ALex_zry5 小时前
Docker容器运维与故障排查实战手册
运维·docker·容器
高校俱乐部6 小时前
华为开发者空间 - 云开发环境(容器)IDE插件远程连接操作指导
容器·软件开发
haofafa6 小时前
Docker极简入门实战大纲
运维·docker·容器